12
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOSアプリのUIをAndroidライクに作成できるライブラリを作ってみた

Last updated at Posted at 2018-10-16

iOS用のビューライブラリを作成したので初Qiita投稿書いてみました。
当方豆腐メンタルのためコメント、ご指摘はお手柔らかにしていただけると嬉しいです。
作成したライブラリ(SwiftJsonUI)
Wiki
ドキュメント書くのが辛すぎてwikiは所々手抜きになっている箇所もありますので英語力と合わせてご了承ください。

##背景
XcodeでiOSアプリのUIを作成しようとするとAuto Layoutと毎回のコンパイル時間に悩まされて一向に作業が進まなかったので、なんとかして作業効率をあげたくて作成。
##やりたかったこと

  1. 再コンパイルなしでビューの修正ができる。
  2. Auto Layoutを極力気にせず作成できる。
  3. Androidのxmlと近い記述方法で書ける。
  4. 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 で実行できますが、こちらはざっくりと作っているのでお好みで修正を加えてお使いください。
完璧に変換できるわけではないですが、ある程度近い表示はできるので作業時間短縮になるかと思います。

##追記
サンプルアプリも作ってみました!
実装の流れも記事にしましたのでよろしくお願いします。

12
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?