iOS用のビューライブラリを作成したので初Qiita投稿書いてみました。
当方豆腐メンタルのためコメント、ご指摘はお手柔らかにしていただけると嬉しいです。
作成したライブラリ(SwiftJsonUI)
Wiki
ドキュメント書くのが辛すぎてwikiは所々手抜きになっている箇所もありますので英語力と合わせてご了承ください。
##背景
XcodeでiOSアプリのUIを作成しようとするとAuto Layoutと毎回のコンパイル時間に悩まされて一向に作業が進まなかったので、なんとかして作業効率をあげたくて作成。
##やりたかったこと
- 再コンパイルなしでビューの修正ができる。
- Auto Layoutを極力気にせず作成できる。
- Androidのxmlと近い記述方法で書ける。
- AndroidのData Bindingが便利なのでそれも実装したい。
##実装内容
###1. コンパイルなしでビューの修正ができる。
こちらはSocketIOを利用することに。
ローカルにサーバーを立ててそこでビューファイルの変更を監視、変更があればアプリに通知して自動でビューファイルをダウンロードし再描画するように実装。開発用の機能なのでdebugビルドでのみプロジェクトに含まれるように実装。
ローカルサーバー側はnode.jsで簡単なものを実装。
###2. Auto Layoutを極力気にせず作成できる。
###3. Androidのxmlと近い記述方法で書ける。
両方ともセットで解決。
xmlをiOSで扱うのが面倒だったのでファイル形式はjsonを選択。
記述方法はAndroidに寄せて作成。AndroidのLinearLayoutやRelativeLayout、match_parentやwrap_contentの仕様をそのまま使えるように実装。
###4. AndroidのData Bindingが便利なのでそれも実装したい。
AndroidのData Bindingがビューとプロパティの紐付けやモデルのデータ反映など色々と便利なのでiOSでも同じ様な感じで使えるように実装。
###おまけ
このライブラリで作成したiOS用のビューをAndroidのxmlに変換して書き出せるパーサーもライブラリに追加してます。
ruby parse_json_to_android_xml.rb で実行できますが、こちらはざっくりと作っているのでお好みで修正を加えてお使いください。
完璧に変換できるわけではないですが、ある程度近い表示はできるので作業時間短縮になるかと思います。
##追記
サンプルアプリも作ってみました!
実装の流れも記事にしましたのでよろしくお願いします。