はじめに
ボクはもともと趣味でAndroidを2~3年やってて、ひと通りわかってるかな~くらい。
会社ではWeb系、JSとかnode.jsとかjavaとかをいじいじしてる系の人間。
バイオ出身で数年前まで『変数って何?』って言ってた人間なのでプログラム知識は乏しい。
そんなボクがSwiftに入門して、一応アプリを2つ申請して、5つくらい作ってみた(多分Swift歴2週間くらい)のでそこらへんの感想を書き留めておく。
Swift(iOS,Xcode)のが良いな~と思う点
書きやすい、わかりやすい
たとえば、セミコロンや括弧が要らないのもそうだけど、
タプルとかも思ったまんま使えるし、何よりStoryBoardがよくできていて、UIとコードとの繋がりがすごいカンタンでわかりやすい。
そしてなにより、新しくてイケイケな感じがして楽しい。
解像度対応が楽すぎる
Androidだと山ほどある端末も、iOSだと数種類。
完成した時のできた感が半端ない。
AndroidだとどんだけNEXUS全部試しても、それでもほんの一部であとは神に祈るのみって感覚がある気がする。
StoryBoardが良くできてる
AndroidもGUIで作れるんだけど、Androidより直感的で作りやすい。
Androidってデフォルトのボタンとかダサすぎてほぼ使えなかったりするんだけど、iOSだとこのまま使って良い感がけっこうある。
アイコンとかもちゃんとしてるし。
でもここは慣れるまでは、迷いの森だった。もぐたんありがとう。
デバッグ速い
AndroidもGenymotionのおかげで大分速くなったけど、
iOSのほうが更に軽快な感じがする。
やってて気持ちが良い。
意外とサンプルコード豊富
もともとObjective-C使ってたから情報少ないべな~と思ってたけど
大体やりたいことはググればでてくるし、ちょっと理解できてくればObjective-Cのコードを脳内変換することもできなくはない。
ライブラリもBridge Header使えばカンタンに使える。
Java(Android,Android Studio)のが良いな~と思う点
慣れ親しんだ感じがする
言語はJavaだし、フォルダ構成もなんとなく慣れてるな~感がする。
iOSだと設定項目みたいなのが山ほどあって、ほぼ触っていないとこが9割くらいな気がする。
その分、Android.manifestやsetting.gradleにまとまってる感はある。
エラーが出た時の解決がしやすい
Androidはエラー内容とかエラーコードでググれば大体Stack Overflowで解決できる。
けど、Xcodeは1回バグると原因が多岐にわたってなかなか早期解決できなかったりする。
その分、Xcodeでは設定ファイルとか手動でいじるのがかなり怖い。
画像リソースが少ない
もちろん、全ての端末に対応するならAndroidもとてつもない量になりそうだけど、デフォルトおさえるくらいの感じだとiOSのがめんどい気がする。
ストアにアップロードする画像とかも含め、iOSはかなりの量がある。
もちろん、Makeappiconなんかを使えば大分楽にはなるが、ここらへんはAndroidのが楽。
あんま変わんないな~と思う点
実はこれがやってみて一番多かった。
ボクも敬遠してたんだけど、やってみたら案外できちゃって逆に驚いた。
もちろん、もぐたんに教えてもらったのも大きいが、覚えれば割と簡単なことが多かった。
構成からコードへの変換
使うクラスやメソッドが違うだけで、書き方はほぼ同じ。
実際に、Android Javaのコードをsublime textで一斉置換して、ちょこちょこって書き換えるだけで『あ、動いちゃった』みたいなレベルでできた。
やり方さえわかれば、やっぱスマホじゃん!って感じがした。
UIパーツの使い方
例えば、AndroidのSpinnerとか、iOSのPickerにあたると思うんだけど
見た目がちょっと違うだけで、必要な値とかもほぼ同じ。
EditTextがTextFieldだったり、やれることは同じだと思ったほうが良い。
昔はIntentとかAndroidに軍配が上がっていたことも、仕組みは違くてもiOSでもシェアとか、やりたいこととしてはほぼ変わらないことができるから、あまり神経質にならなくて良いと思う。
こんな感じ。
たぶん、ボクみたいに小さいアプリを完成させて、リリース(提出)するまでなら、iOSのが半分くらいの時間でできると思う。
なので、これからSwiftでもバンバンリリースしていきたいと思ったのである。
所詮、2週間しかやってない阿呆なので、
書いてあることが全て間違っていても不思議ではない。
おわり。