134
130

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

本物のiOSエンジニアになるための8か条

Posted at

なんとなくタイトルが浮かんだので、書くぞ!
新人プログラマは毎朝復唱しよう!

1: 書いて書いて書きまくれ!

冗談ではない
会社で4時間しかコードを書く時間がなかったら、家に帰って4時間コードを書こう!
会社で8時間コードを書いたら、家に帰って4時間コードを書こう!

2: 読んで読んで読みまくれ!

人のコードを読もう!
OSSを使う時は、サンプルコードとReadmeだけで満足せずに、コードを読もう!

  • どんなコードが読みやすく、メンテナンスしやすいのか
  • どう書けばシンプルに実装できるのか

3: まず、公式ドキュメント

Qiitaは公式ドキュメントではない!
何度でも言うぞ!Qiitaは公式ドキュメントではない!

  • 公式の"〜プログラミングガイド"はしっかり読む
  • WWDCのあとは、API Diffを読む
  • The Swift Programming Languageを読む
  • 公式でない記事は、更新日を確認する癖をつける

4: WWDCのセッション

WWDCのセッションを見よう
Appleが何を考えてAPIを提供しているのか、理解が深まる

  • asciiwwdcにはtranscriptが揃っている
  • 2015年からは公式のtranscriptが用意されている

5: iOS SDKを知る

UIKitは、かなり良いフレームワークです。

GUIのアプリケーションを実装するというのはつまり、階層になったオブジェクトを組み立て、操作することです。
レイアウト、レンダリング、イベントハンドリング、ヒットテスト、ViewController
それぞれ異なる役割を持った階層がUIKitではどのように実装されているのか、イメージできるようになると簡単です

  • 似たような仕組みを作るなら、どう実装するかイメージしてみる
  • 他のプラットフォームではどのような実装になっているのか知る

6: ハードウェアを知る

ソフトウェアはハードウェアと無縁ではいられません
タッチスクリーンから受け取ったイベントが、アプリケーションに伝わり、レンダリング結果が毎フレーム表示されるまでをイメージしよう

  • 自分が書いているコードは、CPUとGPUでどのように処理されるのか
  • ネットワークやディスクの距離感

7: 人間を知る

GUIを開発するエンジニアは、端末ではなく人間をハックするものだと心得ましょう。
実際の処理を1ms短縮する前に、人間の認知を100ms早めるトライをするということです。

8: 知らざるを知らずと為す

ユーザーは考えた通りに動きませんし、Appleは容赦なくOSとハードウェアを更新します。
あなたの考えた最高のアプリは糞ですし、Appleに対する淡い期待は裏切られます。

  • 初期開発時はユーザーの事など何も知らないということを肝に銘じましょう
  • アプリの運用とは、ユーザーを知る過程です
    • 初期開発の何倍もの作業が発生します
  • Appleにきっと大丈夫は通用しません。高い代償を払うことになります。
    • その昔、iPhoneの画面サイズは3.5インチ固定だと信じられていました
  • 依存関係を減らし、局所的に改修しやすく実装する

アプリに限らずですが、変化に強いソフトウェアを作りましょうということです


ビールを飲みながら書き始めた記事ですが、だんだん眠くなってきたのがお分かりいただけるでしょうか。
最初に思いついたタイトルは10か条でした。

134
130
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
134
130

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?