Cordovaを使ってアプリを作っていて、ネイティブ側の管理を効率よく行いたくなっていた。

今までは、実際に作ったCordovaのプロジェクトの中にあるplatformのandroid/iosと各プラットフォーム側のソースをいじくっていたが、なぜか、個別のプラットフォームに移動してからビルドすると失敗したり、他のプロジェクトに使いたくなったりと、管理を考えた方がいいなと思い始めてきました。

しかしながら、結構、皆さんどうやって管理しているのかわからないのですが、
以外に情報がないなとおもったので、ここで悩みながらも、行った(これから行う)方法を記しておこうと思います。

さて、まず、個別のプロジェクト内で管理することはやめるわけなので、
まず、初めに考えた事は、きちんと「Cordovaのプラグイン」として管理していこうかとおもったのですが、
プラグインの作り方はあるものの、プラグインの開発環境や、それにともなうTipsなどは以外にないのだなと思いました。

まず、最初の悩み

AndroidやiOSなどでネイティブの開発を行おうとすると、事実上は開発環境、そして、プロジェクト管理をおこなうひつようがある。

つまり、AndroidならEclipseやAndroid Studio (私の場合には、IntelljのAndroidプロジェクト)の中でコードを書くことになるし、iOSの場合にはXcodeとなるわけです。この単位でプロジェクトができあがってしまうので、コードを管理する際にどうしても、それらのプロジェクト全体も管理せざるをえなくなってしまいます。
(もちろん、すべて別でやる方法もあるにはありますが、まあ、ちょっとそうなると管理は楽になるが別の技術ノウハウも必要になってしまうので、今回は対象外)
従って、これらでコードを書いた後、プラグイン側のコード管理側にソースを吸い上げて管理するのか、それともCorodvaでの動作を確認しながら同時に管理できないのかという問題です。

結局、そうなると、すごくシンプルな管理用のCordovaプロジェクトを作って、そこで管理していくのが良さそうです。
そして、必要なコードのみ、プラグイン側に吸い上げるという感じです。

こうすると次の問題がでてきます。

開発したコードすべてを、プラグイン側に吸い上げるのか?量がちょっと多くなりすぎないか?

Cordova用のプラグインソースは例えば、Android用であれば、

<platform name="android">
        <config -file target="res/xml/config.xml" parent="/*">
            <feature name="Hello" >
                <param name="android-package" value="com.coltware.cordova.HelloWorldPlugin"/>
            </feature>
        </config>

        <source -file src="src/android/com/coltware/cordova/HelloWorldPlugin.java"
                     target-dir="src/com/coltware/cordova/" />
        <source -file src="libs/android/slf4j-android-1.5.8.jar" target-dir="libs" />
        <source -file src="libs/android/gson-2.2.4.jar" target-dir="libs" />
</platform>

コードが増える度に、source-fileタグを追加するのはちょっと、管理が面倒すぎます。
また、別に見えなくてもいいコードがソースとして見えてしまうのはちょっと気分的にいやです。
上のあるようにjarも単純なsource-fileとして書けばいいので、どうやらjarとしてビルドしたのちコピーしてしまえばいいように思います。

ここまでは、プラグインのネイティブ機能開発(実装)として、どのように管理するかになりますが、次の疑問です。

プラグインとして、JavaScriptと機能確認をどのようにすればいいのか?

さて、プラグインとして形式上はできあがるような感じになったところで、それは本当にプラグインとして動作するのだろうか?と確認がしたくなります。
そうなると、作ったプラグインを導入するためのCordovaプロジェクトがあったほうが良さそうです。

とまあ、こんな感じでおおよその、プロジェクト構成に必要なものは洗い出せたような気がします。

しかし、実は、iOSの場合には必要なFrameworkの管理、aファイル(static library)などがあるのですが、ちょっと、そこまで一度に考えると、複雑なので、まずは、Andoridの場合に限って考える事にします。

ここまでを元に、プロジェクト構成(ディレクトリ構成)を実際に、作っていこうと思います。

お仕事のご依頼・相談を承ります
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら

Leave a Reply

お仕事のご依頼・相談
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら
ソフトウェア&ライブラリ




ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
執筆書籍
本、雑誌等

WEB記事:CodeZine
執筆記事はこちら
カレンダー
2015年7月
« 6月   8月 »
 12345
6789101112
13141516171819
20212223242526
2728293031  

カスタム検索
RSS
Add to Google < !–adsense–>
アーカイブ
カテゴリ
にほんブログ村 IT技術ブログへ