Pythonエンジニアがスマホアプリ開発にチャレンジ中
前回、スマホアプリ開発にでも挑戦しようかと書いて二ヶ月が過ぎました。その間何をしてたかというと、宣言通り割と真面目にスマホアプリ開発の勉強をしていました。
まず最初に、そんなにコード量の多くない、オープンソースのiOSアプリのコードを読んでみたんですが、Pythonと全然違う書き方でところどころ意味が分からず…(変数名に?とか!とか付いてて、本当に意味がわからなかった)投げ出したくなる気持ちを抑えて、とりあえず基礎の基礎から勉強しなければと思い、「Swift実践入門」という本を一冊通して読んでみました。これがまぁ、けっこうつらい。アプリを作るでもなく、ただただ文法的なところをひたすら読んでいたのでそりゃそうだという話なんですが。最後まで読んでも多分半分も理解できてなかったと思います。が、意外とこれが後から活きてくる結果に。
その後は「絶対に挫折しない iPhoneアプリ開発「超」入門」、「本気ではじめるiPhoneアプリ作り」という二冊を元に、ひたすら手を動かして学習しました。複数画面があった場合の繋げ方、画面上の部品とコードの繋ぎ方等、慣れてくるとけっこう面白くて、割とすんなり二冊とも読了できました。
そのタイミングで、以前チャレンジしたもののまったく歯が立たなかったオープンソースのコードへ。すると今度は何をやってるのか割と理解できて、何とかアプリらしきものを作れるような前向きな気持ちになることができました。
そこからさらにカスタマイズしようとすると、結局またすぐに行き詰まるんですけどね。本で読んだようなことはとりあえず出来るけど、こういうのをやるにはどうすればいいの?みたいな。
そんなときはまぁ普通にググるんですが、けっこうな頻度で前出の「Swift実践入門」に詳しいやり方や考え方が書いてるんですよね。なので、いつも困ったときは一旦この本で検索をかけてみることにしています。
ちなみにそれでも解決策が見つからず、一日やり方を調べて、最終的に「普通にやってもできないので、無理やり自分で実装するしかない」という結論に至ることもしばしば…。まぁそれはWebプログラミングを学んだときにもよくあったことなので、それも一つの新しい学習の醍醐味として楽しむことにしています。
ちなみに、SwiftでiOSアプリ制作を学ぶのと並行して、同じような感じでAndroidも勉強していました。こちらはSwiftよりも学習速度は遅いですが、元々Javaで少しAndroidのプロジェクトにも携わったことがあったのでSwiftよりもすんなりと理解できた気がします。と言っても、まだアプリを作れるレベルではないのですが。
型付き言語だとPythonに比べて辞書の扱いがちょっと面倒だな、とか、guard let便利だなとか、extension使うとけっこう綺麗にコードがまとまって楽しいなとか、違いを楽しみながら学んでいる毎日です。
まだまだスマホアプリエンジニアとしてはひよっこですが、何となく、個人開発でも何か作れそうな予感がしています。今後も勉強を継続して、いつかはPythonでWebアプリも機械学習もちょろっと書けて、スマホアプリにも対応できる、そんなエンジニアになりたいと思います。というか、なる。とりあえず、今やってるのが落ち着いたら、Androidアプリの企画でも考えてみようかな。