HelloWorld – iOS SDK – Xcode,iPhone/iPadアプリ
XcodeとiOS SDKでHello,Worldをつくってみる。
How To
プロジェクトの作成
Xcodeを起動して、新規Xcodeプロジェクトを作成する。

iOSアプリケーションの、Window-based Application(ウィンドウベースアプリケーション)を選択。

プロジェクト名を入力。「HelloWorld」(なんでも可)

シミュレーターを実行してみよう。
ビルドと実行ボタンを押す(または、Command+Enterキー)

利用するビューの追加と、処理の実装
クラスを追加
「ファイル」→「新規ファイル」(または、Command+N)

クラスのタイプを選択。
左側のビューで、iOSのCocoa Touch Class、右側上段のビューで「Objective-C class」を選択、中段のプルダウンリストより、「UIView」を選択して次へ進む

クラス名入力
「HelloWorld.m」とする。「同時に”HelloWorld.h”も作成」にチェックがある状態で、完了ボタンをクリック。

コードを書きましょう。
HelloWorld.mファイルを開いて、drawRectメソッドがコメントアウトされているのでコメントを外す。
そして、コードを記述
- (void)drawRect:(CGRect)rect {
// 表示する文字をつくって、
NSString *hello = @"Hello, World";
// 表示する位置をつくって、
CGPoint location = CGPointMake(10,20);
// フォントサイズを作って
UIFont *font = [UIFont systemFontOfSize:24];
// フォントカラーを作って
[[UIColor whiteColor]set];
// 合体!
[hello drawAtPoint:location withFont:font];
}
HelloWorldビューは完成。次、HelloWorldAppDelegate.mを開く。
まず、先ほど作成したHelloWorldビュークラスをインポート
#import "HelloWorldAppDelegate.h" // ↓これ #import "HelloWorld.h" @implementation HelloWorldAppDelegate
ウィンドウにHelloWorldのビューを合体
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[window makeKeyAndVisible];
// 作って、
HelloWorld *view = [[HelloWorld alloc]initWithFrame:[window frame]];
// くっつけて
[window addSubview:view];
// 解放!
[view release];
return YES;
}
とってもかんたん。
Xcode ショートカットキー
ショートカットキーを利用して効率のよい開発を!
ビルド
Command+B
ビルドと実行
Command+Return
実行
Option+Command+Return
ヘッダファイル(.h)と実装ファイル(.m)間の移動
Option+Command+↑
(続く)
SLF4J(Simple Logging Facade for Java)
SLF4J。Javaのロギングフレームワークのトレンド。
様々なロギングライブラリのFacadeとして利用する。
環境設定(eclipse+maven2. 直接jarファイルを入手する場合は以下の手順は無視!)
1.eclipseにMaven2プラグインを導入する
m2eclipse
m2eclipse – EclipseでMaven2を利用するためのプラグイン
2.プロジェクトを作成してMavenの管理を有効にする
ファイル→新規→プロジェクト→その他→Javaプロジェクトを作成。作成したら、プロジェクトのコンテキストメニューから、「Maven]→「Enable Dependency Management」を選択。
3.pom.xmlの修正
プロジェクト上に作成されたpom.xmlを開き、Dependencyタブを選択する。
addボタンを押して、以下のように設定する。
- org.slf4jと入力→slf4j-apiを追加(本体)
今回の例ではSLF4Jとlogbackを連携させるため、logbackの必要ライブラリも同時に入手しておく。
実務などで、利用しない場合は不要。
- ch.qos.logbackと入力→logback-coreを追加(logback本体)
- ch.qos.logbackと入力→logback-classicを追加(slf4jとlogback連携用)
HelloWorld!
クイックスタート
Main.java
package sample;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Main {
public static void main(String[] args) {
Main m = new Main();
m.execute();
}
public void execute() {
Logger logger = LoggerFactory.getLogger(Main.class);
String message = "Hello SLF4J!";
logger.trace(message);
logger.debug(message);
logger.info(message);
logger.warn(message);
logger.error(message);
}
}
とりあえず、設定ファイルなしに実行。
コンソールにtraceを除くログが出力された。
コンフィグファイル(logback.xml)を作成してログ出力
デフォルトではdebugレベルに設定されているようなので、設定ファイルを追加してtraceログも出力してみる。
ライブラリにlogbackを利用しているのでクラスパス配下にlogback.xmlを追加。
logback.xml
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<Target>System.out</Target>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>
<logger name="sapmle.core">
<level value="INFO" />
</logger>
<root>
<level value="TRACE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
でた!
別のロギングライブラリを利用してみる
log4j。
依存関係の変更
- log4j(本体)
- slf4j-log4j(slf4jとlog4j連携用)
log4j用設定ファイル(log4j.properties)を設置
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %5p %c{1} - %m%n
log4j.rootLogger=debug, stdout
コードは修正なし!!!!!!
その他
Log4jからlogbackへの乗り換えは、log4j.properties to logback.xml Translatorが便利!!
めでたしめでたし。
















