【連載】iOS/Androidアプリ開発入門「サーバ連動アプリを開発しよう!」 (10) 開発の旅をうまく乗り切る(最終回)
2015/03/15
みなさん、こんにちは!
iOSとAndroidで本格的なアプリを開発してみたい方向けの連載の第10回(最終回)です。
最後に、入門レベルから脱却し、本格的な開発力を身につけるためにはどうすればいいかをまとめます。
早速はじめていきましょう。
開発環境に習熟する
開発を旅に例えると、開発環境は旅の友、それも大変有能な友にあたります。
開発環境に習熟すると、開発・デバッグの効率が上がります。
なんとなく使っているXcode、Android Studioの使い方を本格的に学んでみてください。
ステップバイステップの実行、定義箇所へのジャンプなど、基本的な操作を身につけましょう。
コンパイラ、リンカが何をしているのかがわかれば、ビルドでつまづいた時も問題解決が速くなるでしょう。
サーバ側の開発については、有料の統合開発環境を購入することを視野に入れてみてください。
JetBRAINS社の開発環境は、世界中で愛されています。
それだけ有能なのです。
有能でいて、気のおけない仲間と旅をしたいものですね。
フレームワークに習熟する
開発を旅に例えるならば、フレームワークは、旅の乗り物です。
フレームワークに習熟すると、開発にかかる時間を大幅に短縮できます。
自動車を運転できるようになると、目的地にたどり着く時間が短縮されるのと同じです。
軽量のものから重量級のものまで、様々なフレームワークが揃っています。
ちょっとしたプログラムなら軽量級のフレームワークで。
大規模なブログラムなら重量級のフレームワークで。
目的に合ったフレームワークを選びましょう。
たまに自分が使っているフレームワークを自慢する人がいますが、ポルシェを自慢する人のようなものです。
温かい目で見てあげましょう。
外部ライブラリを使う
開発を旅にたとえるならば、外部ライブラリは、乗り物の車輪にあたるものです。
外部ライブラリを使うと、コードを書かずにアプリを開発するという芸当ができるようになります。
むしろ、自分でコードを書くのは最悪の場合に限るという意識でいるほうが良いかもしれません。
あなたが時間とコストをかけて車輪を再発明する必要はありません。
パッケージ管理ツールにも親しみましょう。
パッケージ管理ツールは、車輪を取り替えるための工具にあたります。
CocoaPods、Gradle、composerなど、開発言語ごとに業界標準のパッケージ管理ツールがあります。
まだ指でネジを回す(ファイルをコピーする)つもりですか。
一度ドライバーを使えば、離れられないようになるのは明白です。
MVCをマスターする
開発を旅に例えるならば、MVCは、乗り物のドライビングテクニックにあたります。
自動車の運転と同様、開発にはルールとベストプラクティスがあります。
MVCは、世界中で認められたベストプラクティスです。
コントローラーは軽量に、プログラムはモデルに書きましょう。
それだけで、テストしやすく、変更しやすく、理解しやすいコードが書けるようになります。
サーバに親しむ
私も昔はサーバが嫌いでした。
そこには、(多くのプログラマが得意とする)論理的・数学的思考が入り込む余地はなく、ただひたすら「知っているかいないか」だけをベースとした、荒涼とした世界が広がっています。
まるで社会科のテスト勉強(ひたすら暗記)のような感じがしませんか。
1つでも回答(設定)を間違えると、×をもらいます(うまく動きません)。
サーバに親しむには忍耐が必要です。
しかし、ある日突然、サーバが面白いと思える日がきます。
きっかけは、人によって様々です。
私の場合、悪戦苦闘しながらサーバにいくつかのツールをインストールしていく過程で、それぞれのツールの共通項が見えてきたとき、自分の手にコントロールを取り戻し、はじめてサーバが面白いと思えるようになりました。
開発を旅に例えるならば、サーバは自然界のようなものです。
所与のものとして存在し、受け入れるしかありません。
しかし、内部の美しさに気づけば、これほど興味深い研究対象はありません。
Linuxを学びましょう。
クラウドをマスターする
開発を旅に例えるならば、クラウドは宿です。
自分で家を建てたり、水道を引いたりしなくても、宿を借りれば快適に夜を暮らせます。
しかも、クラウドなら、部屋を大きくしたり(スケールアップ)、部屋数を増やしたり(スケールアウト)、レイアウトを自由自在に変更することさえできます。
自分で家を建てるのは、マインクラフトの中だけで十分です。
クラウドをマスターし、夜はぐっすり眠りましょう。
終わりに
本連載もここで終わりです。
4年間のアプリ開発で得たノウハウのうち、入門者にとって最も大切と思われる部分をかいつまんでご紹介してきました。
ソースコードや設定の詳細を割愛しているので、あまり役に立たないかもしれませんが、短時間で基本的な考え方を身につける助けにはなると思います。
最後に、皆さんの開発の旅が成功に終わることをお祈りします。
これまでお付き合い頂きありがとうございました。
本日は以上です。
連載目次
iOS/Androidアプリ開発入門「サーバ連動アプリを開発しよう!」
(10) 開発の旅をうまく乗り切る(最終回)
(9) バックグラウンドでメール送信
(8) サーバの監視とデータのバックアップ
(7) リモートサーバ(本番環境)の構築
(6) ローカルでの単体・結合テスト
(5) コントローラーとビューの実装
(4) モデル実装
(3) API実装
(2) 画面設計・データベース設計・API設計
(1) 開発環境の構築