クロスプラットフォーム開発経験
クロスプラットフォームというと主語がでかいですが、Titanium Mobileを指します。
Titanium Mobile開発経験約二年です。
出したアプリiOS6本/Android3本。
(Androidはストアから削除した/された)
最近はTitanium辞めてSwift書いてます。
Titanium Mobileの辛み
- クロスプラットフォームは幻想
- iOSで開発完了→Android対応が容易ではない
- 自分の場合、iOSにかけた時間の1.5倍くらいは必要だった
- Android対応あきらめたアプリもある
- ソースコードの中でiOSとAndroidの切り分けが頻発
- バグがあった場合、Titaniumのバグかネイティブのバグかわからない
- パフォーマンスがでない、カクカクする
- ドキュメントに書いてあるのに動かない
- ドキュメントに書いてないのに動く
- 黒魔術的なコードを書かないと回避できなかったりする
- Titaniumが対応しないと使えないapiがある、選択肢が狭くなってしまう
- moduleがあればそれを使う、無ければ自分で作るしかない
- 自分で作る->結局ネイティブの知識が必要
- バイナリサイズがでかい
- JS、いくらでもクソコードで動いてしまう
- これは俺が悪い
Titanium Mobileの良かったとこ
- 記述量少なかった
- swiftだと記述増えた、TitaniumはJSONでいい感じに書けた
- JSで書ける
- 学習コスト低め
- ロジックはiOS/Androidで動く
- UI作るのがツラい
クロスプラットフォーム開発に必要なこと
- 工数は半分で済むと思うな
- アプリがヒットしたらネイティブで書き直す気持ち
- 絶対にネイティブで開発したくなる
- 地雷を踏み抜く勇気
- 折れない心
- ネイティブの知識
- 無くても何とかなる
最後に
クロスプラットフォームの辛みを書きましたが、クロスプラットフォームをディスっているわけではないです。ただ、銀の弾丸ではないということを伝えたかっただけです。
また、個人の技量や経験に大きく左右されます。この内容に共感できる人もいればそうでないひともいるでしょう。
私はTitanium、好きでした。でもつらい。