質問: swift2ヶ月目の初心者です。基礎はやってきたつもりですが、機能を実装する時は基礎以外の知識が必要となります。 そこで私はネットに書いてない情報は公式ドキュメントやライブラリの説明を読みました。 ですがコードの説明を読んで「そういう意味なのか」と思うだけでコードは書けません。 RealmSwiftは2週間必死にコードを書いてみたり動画をみたりしましたが、全然扱えず結構へこみます。 2ヶ月やっても勉強方法は全くわからず、この先不安でしかないです。 ### 質問 アプリ開発する上で公式ドキュメントを読むしかないのは明らかですが、そこからコードを書くのに流れ的なものはあるのでしょうか? 20時間ほどで一つの機能(RealmSwift等)を実装できずに凹んでいるのは甘い考えですか? 時々くる不安から質問をさせていただきました。もし甘いなら「そんな短時間でできるわけない」と厳しくいってもらって大丈夫です。
回答: 始めに、独断と偏見の回答になることをご了承ください。 (質問の内容的に主観がどうしても入ります) > > 機能を実装する時は基礎以外の知識が必要となります。 > > > 知識は、ない場合はひたすら、調査です。 というか、現場でも、新機能とか実装する時は、今までの知識があったとしても、 新しい知識、まだ身についてない技術が入りようになるので、 どんなに経験しても、それは必要なんです。 さて、本題です。 **基本はわかるが、実装ができない**と言う人の多くは、 **要件定義**ができていない人と思われます。 なぜなら、これができれば、多くの実装は**後はただやるだけ**になりますので。 例えば、 **チャットアプリを作りたい**としましょう。 であるならば、要件は下記になります。 * チャットをする際のUI * サーバー間通信、プッシュ通知 * 会員制、そのシステム もっといっぱいあるかもしれませんが、上記が**最低限必要な機能**としましょう。 あとは、さらに細かく要件を絞っていきます。 UIはLINEっぽいやつで、それをやるには、UIViewControllerではこれをやって、 それをやるにはどれが必要で・・・といった具合に。 そこまで絞れば、大まかな機能ではなく、機能単体での調査が可能になりますので、 よほど頓珍漢なキーワードでなければ、**絶対何かしら見つかり**ます。 そして、そのUIについて、調査と実装を終えたら(もしくは同時並行で)次の要件をまた分割して、 細かい要件を絞っていきます。 というように、作りたいものに対して、 要件を細分化していくのが、ある大枠の機能を実装していくことに直結していくんです。 大枠の機能をそのままの言葉で調べたって、方法が出てくるわけがありません。 なぜなら、その大枠の機能は、**まだ世に出てない**んですから。 そして、既存の機能とか細分化したものを組み合わせて新しい機能を作るもんですしね。 スティーブジョブスは、iPhoneの3Dタッチを開発する際、他のエンジニアや、会社が、 一つの機能だけで実装しようとして、ことごとく失敗していたのに対し、 いくつかの既存の技術を組み合わせて、実装しました。 * 歪むガラスで、圧力の強さを特定 * 既存のタッチパネルで、タッチ箇所の特定 を使って、3Dタッチを実装しました。 コロンブスの卵ではありますが、 一つの機能でまとめてやろうとしていたら、いつまで経っても完成していなかったと思われます。 これも、要件定義がしっかりとなされているからこその完成と言えましょう。 なので、知識もそうなんですが、 まず、実装したい機能の要件定義をやれるように目指されてはいかがでしょうか?