仕事で使うとかモバイルエンジニアにキャリアチェンジしたいとかではないんだけど、iOS開発環境少し触ってみたので感想書いてみる。
現状
ここ数年Webの開発エンジニアポジションで直接のモバイル開発経験なし。モバイルに渡すサーバサイドのAPIとかWebView開発経験はある。
動機
- 単なる好奇心
- ReactNativeを軽く動かしてみたが中身がブラックボックスすぎて少しは中を知ってみたくなった。
- 自分が担当でなくてもモバイル開発ってどんなもんかちょっとでも知っておくと業務上のコミュニケーションが取りやすくなったりいいことあるかなとか
やったこと
Udemyのセールで1300円でオンライン講座買ったけど37時間あり異常に充実している。。ただやっぱり長くてとりあえず半分まで受講したところで気が済んでしまった状況。
残りの内容はJSON解析して画面に描画したりFirebaseと連動させたりみたいな内容みたいだけどその辺りは普段Reactでやってる作業とそんなに差がなさそうなんで気が済んでしまった。
受講した内容
- Swiftについての講義
- Xcode上でのStoryBoardを使ったiPhoneアプリ開発
- WebViewでのWebサイト表示方法
- MVCパターンでのフォルダ分割
- CocoaPodsでのライブラリ管理
- JSON、XML解析
- Firebase連携
- airbnbのlottie-iosライブラリを使ったアニメーション実装
など
買った講座
感想
- swiftは概ね違和感なく使えそう。ただDelegateパターンでのプログラミングはまだ慣れない。
- あとswiftにはオプショナル型っていうnilの値を許容するか制御する型の仕組みがあって独特な感じだけどそこまでxcodeで書いてると勝手に修正してくれるんでそんなに辛くはなさそう。
- 簡単な画面のアプリ作るくらいなら今すぐできそう。ただ複雑なUI(カレンダーとか)開発だとWeb画面の開発と勝手が違うんでしばらくつまづきそう
- xcodeでの開発が最初戸惑う
xcode上での開発
- xcodeでStoryBoardっていうXMLファイルを選択するとiPhoneの実画面のプレビュー画像みたいなのが出てくる
- そこに配置したボタンやテキストなどのUI部品を配置
- UI部品をクリックしてxcode上で色や文字の大きさフォントをぽちぽち選んでくとStoryBoardに反映される
- 配置したUI部品を選択してCtrlキーを押しながらエディタ状のコードにドラッグアンドドロップして動きをつけていく
。。みたいな開発をやったんだけどこの作業がプログラミングいらずのGUI作業でどんどん進むので最初戸惑った。
GUI作業でコードが更新されてくと何が起こってんだこれ?ってなるけど実際は画面構成とUI部品の見た目を制御するXMLとそこに動作をつけるSwiftを作っているのであってこれはWebでいうHTML、CSSとJSの関係とまあ似たようなもんだという理解でいる。
慣れるとHTMLにCSSやJS当てていくよりも直感的に画面作れそうだしこっちの方が初学者には優しいんだろうなとは思う。
まだよくわかってないこと
- SwiftUIっていう新しい開発の仕組みがあるらしくてこれが何なのか
- SwiftUIは現状の現場ではあまり使われてないっぽいけどいつ頃主流になるのか、現状の開発とどう共存してくのか
- iOS開発環境だとC、C++とMetalって言語も使えるらしいけど普通のアプリ作るときにはほぼほぼ関係ないコア機能作るときの選択。ってことでいいのかな?
- AR、VR、機械学習絡みのAPIは面白そうだけど全くわかってない
これどこまで首突っ込むか
現状ポジション的にはWebのエンジニアでだしモバイル開発のAPIに詳しくなるより普段触ってる技術(サーバサイドのAPI開発、JS、AWS)の深い知識を身につけていく方がまだ優先度高いかな。。と思う。大体その領域で十分仕事あるし。
ただWebの開発とは違った体験が新鮮で面白くはあるんでちょくちょく気晴らし程度に触ってはみたいかな。