iOS theosによるApplicationの作成方法
今回は端末に構築したtheosを使い簡単なアプリを作ってみましょう。
ボタンを配置してタップするとアラートを表示させるというシンプルなアプリです。
theos構築をしていない方はこちらを参考に構築して下さい。
では作っていきましょう。
ターミナルから次のコマンドを実行します。
$THEOS/bin/nic.pl
するとテンプレートがいくつか表示されますのでApplicationを選択します。
NIC 2.0 - New Instance Creator ------------------------------ [1.] gazelle/view_plugin [2.] iMokhles/Tweak [3.] iOS/Aoraki2 Button [4.] iOS/CCLoader Plugin [5.] iOS/Command Line Interface [6.] iOS/Dynamic Library [7.] iOS/Flipswitch Toggle [8.] iOS/Scription Module [9.] iOS/Scription Script [10.] iOSGods CSCI Patcher v2.0 [11.] iOSGods CSCI Patcher v3.0 NewAutoLipo [12.] iOSGods Patcher v1.1 [13.] imported/iphone/action_menu_handler [14.] imported/iphone/activator_listener [15.] iphone/Application [16.] iphone/cctoggle_toggle [17.] iphone/cydget [18.] iphone/framework [19.] iphone/library [20.] iphone/preference_bundle [21.] iphone/tool [22.] iphone/tweak [23.] iphone/velox_plugin [24.] mikiyan1978's/tweak
諸所の入力が終わりましたらiFileなどのファイルマネージャーで作成したプロジェクトフォルダを開きます。
今回のプロジェクト名はbuttonappとしましょう。
次にMakefileというファイルの1番上に
ARCHS = armv7 arm64
これを追加記述します。32bit、64bit端末に対応させる為の記述です。
もうこの時点でこのアプリのコードは完成しています。ここでどんなアプリが出来るかビルドしてみましょう。
cd buttonapp make package
このコマンドを実行します。
するとプロジェクトフォルダ内にdebファイルが作成されるのでインストールしてみましょう。
ここで注意ですがホーム画面に表示されるタイプのアプリなのでインストールしたあとは
uicache
キャッシュをクリアしてあげましょう。
暫くするとホーム画面にアプリが追加されます。
起動してみます。すると上下に黒帯がある真っ赤な画面が表示されます。とりあえず「真っ赤な画面を表示させるだけ」のアプリが完成しました。
ではこの真っ赤な画面を変更してみましょう。
例として普通の白い背景画面にしてみます。
RootViewController.mm
というファイルを開きます。
デフォルトでは
//デフォルト #import "RootViewController.h" @implementation RootViewController - (void)loadView { self.view = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease]; self.view.backgroundColor = [UIColor redColor]; } @end
こんなコードになっているはずです。
これを次のコードに書き換えます。
//書き換える #import "RootViewController.h" @implementation RootViewController - (void)loadView { self.view = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease]; self.view.backgroundColor = [UIColor whiteColor]; } @end
最後の行の
self.view.backgroundColor = [UIColor redColor];
ここのredColorを
self.view.backgroundColor = [UIColor whiteColor];
whiteColorへ書き換えます。こうする事で背景画面の色を変更できます。
さて背景画面の変更が出来ましたので、次は本題のボタンを配置してみましょう。
RootViewController.mmファイルを次のように書き換えます。
#import "RootViewController.h" @implementation RootViewController - (void)loadView { self.view = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease]; self.view.backgroundColor = [UIColor whiteColor]; UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; myButton.frame = CGRectMake(110, 50, 100, 35); [myButton setTitle:@"ボタン" forState:UIControlStateNormal]; [myButton addTarget:self action:@selector(myButtonPressed) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:myButton]; } @end
ここでビルドしてインストールしてみましょう。
すると画面に「ボタン」という名前のボタンが配置されているはずです。
タップする事も可能ですが、まだタップされた時の処理を書いていないのでアプリはクラッシュします。
では実際に処理を書いていきましょう。
#import "RootViewController.h" @implementation RootViewController - (void)loadView { self.view = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease]; self.view.backgroundColor = [UIColor whiteColor]; UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; myButton.frame = CGRectMake(110, 50, 100, 35); [myButton setTitle:@"ボタン" forState:UIControlStateNormal]; [myButton addTarget:self action:@selector(myButtonPressed) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:myButton]; } //タップ処理 - (void)myButtonPressed { UIAlertView *theAlert = [[UIAlertView alloc] initWithTitle:@"こんにちは!" message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK!", nil]; [theAlert show]; [theAlert release]; } @end
これでタップ処理を実装出来ました。ビルドしてインストールしてみましょう。
ここでビルド時にエラーが出てしまう方は多いと思います。それはアラート表示させる為の
UIKitにあるUIAlertView
というフレームワークを使用します。
なのでMakefileというファイルに
buttonapp_FRAMEWORKS = UIKit
これを追加記述します。
ARCHS = armv7 arm64 include theos/makefiles/common.mk APPLICATION_NAME = buttonapp buttonapp_FILES = main.m buttonappApplication.mm RootViewController.mm buttonapp_FRAMEWORKS = UIKit include $(THEOS_MAKE_PATH)/application.mk
これでビルドできるはずです。
ボタンをタップすると上記画像のようにアラートが表示されたら完成です。
さて今回はボタンを配置してアラートを表示させるアプリを作ってみました。タップ処理の部分に別のコードを実装する事も可能です。
需要があれば続きを書きたいと思います。
質問がありましたら下のLINE追加ボタンより追加して下さい。
Twitterやってます。
Follow @ray__kisaragi
オマケのカスタム検索です。