Tag Archives: Objective-C

Swiftに注目すべきたった一つの理由

0
Filed under iOS SDK, Swift
Tagged as , , , ,

先日のWWDC14のキーノートの最後にSwiftが発表され、iOSアプリ開発のコミュニティは騒然としたまま10日が過ぎました。
Swift
Appleが即日で公式ドキュメントや開発環境(Xcode6beta)を提供したこともあり、ある人は早速勉強会を企画し、ある人はgithubにプロジェクトをアップし、またある人は2048をコピーし、発表されたのが先週頭とは思えないほど、既に世の中にはSwiftの情報があふれています!

飛びつくべき新言語なのか?

さて、そのSwiftですが、オフィシャル情報を見て、文法がモダンで普通に便利そうなのは分かります。
しかし、Objective-Cに置き換わる可能性はあるのか?
置き換わらないとしても、限りある学習コストを使ってまで習得すべき言語なのか?
ある程度経験のあるエンジニアなら強く感じる疑問かもしれません。
私も、基本的にあまり無駄に言語は習得すべきではない(出来ない)と考えているくらいで、Swiftを学習することについてはかなり懐疑的でした。

しかし、ある一つの情報を知り、かなりの確度でSwiftがiOS/Macアプリ開発においては主流になりうると考えるようになりました。

Chris Lattner

その情報とは、Swiftの「制作者」です。
Swiftの制作者 Chris Lattner は、WWDC14のキーノートでSwiftの説明をしたその人なのですが、実は、今ではXcodeの標準コンパイラ基盤となっているLLVMを設計した人なのです!
Chris Lattner
ウェブで公開されている情報によると、イリノイ大学アーバナ・シャンペーン校でComputer ScienceのPh.D取得後、Apple Inc.のXcode/Instrumentsのプロジェクトに入ったのが2005年。
そんなChris Lattnerが、2010年から作り始めた言語がSwiftなのです!
私たちからするとSwiftは「突然出てきた新言語」なのですが、その背景を知ると「満を持して出てきた新言語」なのです。

最強の組み合わせ

LLVMには、様々な言語から一旦中間言語にする過程があリます。
ここをうまく活かして、Rubyを使ったRubyMotion, C#を使ったXamarinなどが出てきています。
もちろん、Swiftもここに乗っかるわけですが、SwiftはCocoa/Cocoa touchに特化して作られてきている言語です。しかもその基盤となるLLVMを誰よりも知っている作者が携わっているのです!
このような理由で、当面無視はできないし、iOS8以降を対応としたアプリならSwiftで書くくらいの興味は持ち続けておきたいと考えています。

情報源/ポッドキャスト

ところで、Swiftの作者であるChris Lattnerについては、Rebuild.fmの第46回「Worldwide Stockholm Syndrome (naan, hak)」で知りました。
Rebuild.fmは、最近聴いているポッドキャストの中でもテック系として、自分より高い視点だったり、サーバサイドの話が聞けるので、気に入っています。
ポッドキャスト繋がりで言うと、backspace.fmの第27回「モダシン総帥が語るWWDC2014の感想とスティーブジョブズについて」もWWDC14で発表された内容について言及されています。ゲストがモダシンさんで、iOS/Mac OS Xの融合が進んだことについてかなり面白い話が聞けます。そうか、そういうことか、と。

実は最近、自分もポッドキャストやりたい、とか考えていて、誰か一緒にやらないかなーー。

「詳細! Objective-C iPhoneアプリ開発 入門ノート」読了

0
Filed under iOS SDK, Objective-C, プログラミング言語,
Tagged as , , ,


上記ツイートを見て早速応募したら選んで頂けたようで、送られてきました!
ありがとうございます!!
ということで、レビューを掲載します。
詳細! Objective-C iPhoneアプリ開発 入門ノート
帯の「やれる!学ぶことをためらうな!」という言葉が熱い!
テンション上がります!!!

詳細! Objective-C iPhoneアプリ開発 入門ノート

著者/訳者:大重 美幸

出版社:ソーテック社( 2013-07-20 )

定価:

単行本 ( 432 ページ )

ISBN-10 : 4800710081

ISBN-13 : 9784800710086


私の視点

自社企画、他社の受託等、いろいろなiOSアプリを作ったりしていて、ある程度の開発に関する知識はあるつもりです。
が、この夏から、RainbowApps川越校の講師をやらせていただいて、その準備や授業をやる度に、まだまだだなー、と思うことが多々あります。
特に、自分よりも他の人、初心者向けにどうやってプログラムを教えるか、ということには一番興味があることといっても過言ではない状態で、そんな中、本書はどのように進めているのか、ということを興味深く読まさせて頂きました。

淀みない流れ!

著者の大重氏は定期的にアプリ開発の講座もやっておられます。

その講座で得られた知見が惜しみなく注ぎ込まれていると感じられる内容でした。
序盤のXcodeの説明(PART1)から一旦C言語の説明まで戻り(PART2)、そこから少しずつ積み上げていくところとか非常にわかりやすいのではないかと。
内容は丁寧ですし、テンポがいいのも飽きさせないですね。

プログラムって難しい

やっぱりプログラムって難しいと思うのはPART3。
配列等の説明をしている章なのですが、これらをどう教えるのか、というところにも個人的に興味がありました。その後の説明でOutlet Collectionとか出てくるからここに持ってきたのかもしれませんが、初心者は飛ばしたほうが良いかもしれない、ということ。
ただ、初級以上の方は得られることが多い章となっていますので必読。

内容は最新技術!

内容が最新技術に追随しているのが素晴らしいです!
「よく知っている人=昔からの知識を持っている人」なのですが場合によってはその古い知識のまま書かれた書籍もよく見ます。
しかし、本書は最新技術/仕様のみで書かれています!
ARC前提、iOS5以上は当然、という感じですのでiOS4.xで使えない仕組みとかもありますが、今更それをサポートするのも時間の無駄ですので、本書の方針には賛成です。
結構知らないコネタも満載で、中級者以上でもさらっと目を通すと、2つ3つは「え、こんなのあったんだ!」ということがあるかと思います。
個人的には、p.237の「UIAlert のalertViewStyle」が大きな驚きでした。
iOS5で追加された機能のようですが、UIAlertに入力エリアが付いたものが標準でサポートされています!

ということで、初級者〜中級者にオススメです!


[AD]

↓大重氏はもともとFlash界隈で有名な方ですね。

Adobe Flash CS4 詳細! ActionScript3.0入門ノート[完全改訂版] (Oshige introduction note)

著者/訳者:大重 美幸

出版社:ソーテック社( 2009-08-01 )

定価:

Amazon価格:¥ 8,143

単行本 ( 496 ページ )

ISBN-10 : 4881666940

ISBN-13 : 9784881666944


↓どういう内容か気になります!

プログラマの考え方がおもしろいほど身につく本 問題解決能力を鍛えよう!

著者/訳者:V.Anton Spraul

出版社:アスキー・メディアワークス( 2013-05-01 )

定価:

Amazon価格:¥ 6,402

大型本 ( 256 ページ )

ISBN-10 : 4048869558

ISBN-13 : 9784048869553


追加でStoryboardを読み込む

0
Filed under iOS SDK, Objective-C
Tagged as , ,

既にUINavigationControllerの管理下にある状態で、その中に、新しいストーリーボードを読み込み、Pushさせる時のコードをメモしておきます。

xcode storyboard

Storyboardファイル読み込み

secondSB.storyboard というストーリーボードファイルを読み込み、Navigation ControllerにPUSHさせるときは次のようになります。

1
2
3
4
5
UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"secondSB" bundle:[NSBundle mainBundle]];
id vc = [storyboard instantiateInitialViewController];
 
// PUSHして遷移、の例.
[self.navigationController pushViewController:vc animated:YES];

これが出来ると、一つのStoryboardファイルだけが巨大化していくのが防げ、管理するのに適度なサイズで設計/実装できます!

注意点

1つだけ注意するべき点は、上記のコードでstoryboardファイルがない場合には例外(exception)が発生するので、その対応をしておく必要が有る、ということです。
対応例は次のようになります。

1
2
3
4
5
6
7
8
9
10
UIStoryboard* storyboard = nil;
@try{
  [UIStoryboard storyboardWithName:@"secondSB" bundle:[NSBundle mainBundle]];
  id vc = [storyboard instantiateInitialViewController];
  // PUSHして遷移、の例.
  [self.navigationController pushViewController:vc animated:YES];
}
@catch{
  // 例外が発生.
}

try-catchで括る範囲は適当に最適化すれば良いですが、storyboardWithName:bundle: はやっておいたほうがよさそうです。


[AD]

↓気になる書籍が登場!どういう手順で教えているのか是非チェックしたい。

TECHNICAL MASTERはじめてのiPhone/iPadアプリ開発iOS6/Xcode4対応版

著者/訳者:吉田 裕美

出版社:秀和システム( 2013-03-06 )

定価:

Amazon価格:¥ 19,275

単行本 ( 405 ページ )

ISBN-10 : 479803715X

ISBN-13 : 9784798037158


↓iOS/Android両対応のcocos2d-xの書籍が登場!要チェック!

cocos2d-x入門

著者/訳者:清水 友晶

出版社:リックテレコム( 2013-06-25 )

定価:

Amazon価格:¥ 3,024

単行本(ソフトカバー) ( 400 ページ )

ISBN-10 : 4897979226

ISBN-13 : 9784897979229


ARCでCGColorRefを使い実機で落ちる場合の対応

0
Filed under iOS SDK, Objective-C, トラブルシューティング
Tagged as , ,

ARC (Automatic Retain Count)を有効にして、CGColorRef構造体を使うと、非ARCで動いていたコードがデバイスで実行した時に落ちる現象に遭遇しました。
ちょっと調べてみたら、下記のようなコードで落ちていることが分かりました。

1
CGColorRef colorRef = [UIColor redColor].CGColor;

ちなみに、このときXcodeでは次のようなスタック表示がなされています。
Xcoce CGColorRetain thread

この問題は下記のように CGColorRetain メソッドで括ることで対応出来ます。

1
2
// CGColorRef colorRef = [UIColor redColor].CGColor;
CGColorRef colorRef = CGColorRetain([UIColor redColor].CGColor);

参考サイト


[AD]

↓気になる書籍発見!最近発売された様子!

iPhone/iPad グラフィックスプログラミング

著者/訳者:STUDIO SHIN

出版社:ソフトバンククリエイティブ( 2013-05-28 )

定価:

Amazon価格:¥ 8,789

大型本 ( 444 ページ )

ISBN-10 : 479735819X

ISBN-13 : 9784797358193


↓よさそうですよねー!

たのしい インフォグラフィック入門

著者/訳者:櫻田 潤

出版社:ビー・エヌ・エヌ新社( 2013-05-24 )

定価:

Amazon価格:¥ 2,280

ペーパーバック ( 196 ページ )

ISBN-10 : 4861008530

ISBN-13 : 9784861008535