Help us understand the problem. What is going on with this article?

iOSノウハウ集(2014年版)

More than 5 years have passed since last update.

heathrowエンジニアブログからの転載です。

元々は社内Wikiにあったものを持ってきたので古い部分があります。

ac916c70-9b51-93c1-c92b-01307d930f5e.png

heathrowでは好きなファッションブランドをまとめ読みFavricaというiOSアプリを開発しています。本日1.0.4がリリースされています!

View系

  • ストーリーボードはマージできない
    • 開発の単位で分ける(同時に編集できないので)
  • .xib .storyboard の読み込みに時間がかかる時がある
    • viewDidLoadが呼び出される直前に暗黙的に読み込まれる(メソッド名通りである)ので明示的に読み込まないようにしてviewWillAppear、viewDidAppear等で読ませるとよし
  • Viewの実装はガンガンUIViewかUIControlをサブクラス化してViewControllerから切り分けていく
  • UIAlertViewとかUIActionSheetのデリゲートはめんどくさいからBlocksKitを使う
  • UISegmentedControlのカスタマイズは地獄なので素直にサードパーティのライブラリを使おう
  • UIImageViewのcontentModeはimageを代入する前に設定する必要がある

設計など

  • UITableViewController(UICollectionViewController)は継承しない
    • ViewController系は基本的にUIViewControllerのみを継承し、DatasourceとDelegateを実装する
  • 共通化出来る関数はUtilityクラスを作ってクラスメソッドで実装する

テスト

その他

サードパーティライブラリ

街のカタログアプリ「Here」で利用しているiOSライブラリのまとめ | heathrow.labにまとまっています。

リファレンス

※コーディングの仕方がかなりのスピードで変わるのでなるべく新しい情報を参考にする

  • ファーストパーティのものが最重要
    • https://developer.apple.com/jp/devcenter/ios/library/japanese.html
    • ない場合は英語のほうを探す
    • Objective-Cによるプログラミング、Objective-C プログラミング言語、Blocksプログラミングトピックス、iOS View Controllerカタログ、iOS View Controller プログラミングガイド、iOS Table View プログラミングガイド、並列プログラミングガイドらへんがおそらく必須
  • iOS開発におけるパターンによるオートマティズム
    • Cocoa Touchの踏襲すべきクセみたいなものを教えてくれるので必読
  • Cocoa iOS デザインパターン http://yusukeito.me/post/41267296089/cocoa-ios
    • こちらも設計の上で参考になる
  • iOSアプリ開発早見表的にmixiのiOSトレーニングコースが使える

学習ガイド

0. 「mixi-inc/iOSTraining Wiki

上記のmixiのiOSトレーニングコースをざっと見る。導入部分が一切ないのでこのコース通りはやらずに1にすすむ。1でXcodeなどの操作がわかったら戻ってくるのもアリ。

1. 「よくわかるiPhoneアプリ開発の教科書

まずはこの本でざっと入門する。Master-Detail(UINavigationContollerとUITableView)を実装したらオッケー。できたらUITabControllerも。
iOS6まではこの本で良いと思うのだが、iOS7対応して「現場で通用する力を身につける iPhoneアプリ開発の教科書」になっているように思われる。ここで重要なのはどの本か、というよりもアプリ開発の流れが図などでわかりやすくまとまっていて、辿ることが出来るかどうか、なので自分でこれならわかる!ってのがあったらそれでよい。

2.「iOS開発におけるパターンにおけるオートマティズム

第3章のCoreDataと第4章のメモリ管理は飛ばす。第5章、第6章、第7章が必読。第8章のネットワークはライブラリを使うとまた違う話になるので飛ばす。

3.「プロの力を身につけるiPhone/iPadアプリケーション開発の教科書

2でも言及されるものの詳しくは書かれていないiOSのイベントのライフサイクルが書かれている。データの永続化の方法もここで押さえておく。ただし、それぞれブログの記事でも事足りる。

4.「はてな研修用教科書 Web API を利用する iOS アプリ作成

Webサービスのクライアントを作る場合、この教科書は超参考になる。特に設計。
実際に「はてなブックマーク」のクライアントアプリが実装されたコードがあり、Favricaの設計、実装の参考にしている。
hatena/ios-Intern-Bookmark-2013

書籍

上記にあげた以外です。

詳解 Objective-C 2.0

こちらをリファレンスとして使っています。

エキスパートObjective-Cプログラミング ― iOS/OS Xのメモリ管理とマルチスレッド

最近のObjective-Cは非同期処理をBlocksとGCDという機能で書くのですが、その最も詳しい日本語解説がこの本です。Favricaではあまり非同期処理を行っていないんですが、Favricaの前身のHereではエリアカラーによってUIパーツの色が変わるという機能があったので、非同期でUIパーツに色を付けるクラスを作っていました。そのクラスを作るときに大変参考になりました。

Effective Objective-C 2.0

ある程度書けるようになると、この書き方でいいのだろうかって疑問に思うようになってきますが、この本を読むとこう書いとくといいのかという知識が得られますが、Webに既にあったりするので、不安を解消したい人はどうぞ。

エンジニア募集のご案内

heathrowではただいまエンジニアを募集しています。ご興味あるかたは、是非遊びにきてください。
http://heathrow.co.jp/contact/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away