カテゴリ : 開発ツール

3

ICS以降の端末の大きなメリットとしては、adbコマンドに「adb backup」 「adb restore」が利用できるようになったということが挙げられます。ICS以前の端末ではまるっと端末のバックアップを取るためにはrootedでなければ不可能であり、大きなリスクを伴っていました。

adbコマンドを利用するためにはまず、Androidの開発ツールである "Android SDK" をインストールしておく必要があります。Android SDKのインストール方法は割愛しますが、以下のサイトを参考にしていただければと思います。

IT Pro|Android 開発環境 インストール方法

Android SDKのセットアップが完了し、端末を認識できるように設定したら(以前のエントリを参照)、ようやくadbコマンドが利用可能になります。


adb backupの使い方

 コマンド実行時には端末の設定から「USBデバッグ」チェックを入れた上でPCとUSB接続をしてください
  adb backup [-f <file>] [-apk|-noapk] [-shared|-noshared] [-all] [-system|-nosystem] [<packages...>]
- write an archive of the device's data to <file>.If no -f option is supplied then the data is written to "backup.ab" in the current directory.

(-apk|-noapk enable/disable backup of the .apks themselves in the archive; the default is noapk.)
(-shared|-noshared enable/disable backup of the device's shared storage / SD card contents; the default is noshared.)
(-all means to back up all installed applications)
(-system|-nosystem toggles whether -all automatically includes system applications; the default is to include system apps)
  (<packages...>is the list of applications to be backed up. If the -all or -shared flags are passed, then the package list is optional. Applications explicitly given on the command line will be included even if -nosystem would ordinarily cause them to be omitted.)

ざっくりと説明すると、
"-f"がバックアップファイルについて指定するオプションで、デフォルトだとカレントディレクトリに「backup.ab」という拡張子でファイルが生成されます。
"-apk|-noapk"はバックアップにapk(いわゆるアプリ)を含めるか否かのオプションで、指定がなければ”-noapk”で含まれません。
"-shered|-noshered"は端末に割り当てられたSDカードにバックアップを保存するか否かのオプションで、指定がなければ"-noshered"でSDカードには保管されません。
"-all"はそのまんま全てのアプリケーションかどうかということです。
"-system|-nosystem"はシステムアプリケーションも含めるか否かということで、指定がなければ含まれます。
<packages...>は必ずバックアップを取るアプリケーションのパッケージ名を指定することで、nosystemで本来バックアップ対象でないものも、このように明示的に指定すればバックアップが取れます。

例えばapkを含めた全てのファイルをバックアップし、SDカード上でも保管する場合は以下の様になります。
adb backup -apk -shered -all

このコマンドを利用すると、各種アプリケーションの設定も含めてバックアップしてくれるので、いざ元に戻したときに、一々設定をやり直しする手間がなくなるのがうれしい。コマンド入力後に端末側でバックアップ取得の為のパスワードを入力を求められるのでそれを入力します。(フルバックアップのパスワードはあらかじめ設定しておいてください。設定>開発者向けオプション>PCバックアップパスワードで設定が可能です。)
adb_bak01adb_bak02


adb restoreでバックアップを復元する

 「adb restore」を使って、上のコマンドで取ったバックアップファイルを復元します。 使い方は簡単。以下のコマンドを入力します。
adb restore <file>(デフォルトならbackup.ab)
こちらもバックアップ同様、パスワードを求められるので、入力後復旧が開始されます。

因みに、『Xepria NX』では”Sony PC Companion”というソフトを使ってバックアップとリストア(設定も復元可)が出来るので、上記のコマンドを使う必要性はないのですが。(このツールのせいか、コマンドもうまく動きません)

pcc



3
本当に久々にiPhoneアプリをAppStoreにアップロードする機会に遭遇し、いろいろ手順を忘れててめちゃくちゃてこずったので、備忘録として残しておこうと思います。近いうちに改めて書いておこうとは思いますが、AppIDの発行とプロビジョニングファイルの作成についてはここでは割愛して、iPhoneアプリの本番用モジュールを作成する方法を記載しておきます。

ソースをXCodeで展開する

まず前提として、ネイティブでiPhoneアプリを開発する場合にはXCodeを使用することになります。XcodeはMac OSでしか動作が保証されていないので、iPhoneアプリをネイティブで作ろうと思うと、必然的にMacintoshが必要になります。Xcodeで開発をした場合、.xcodeprojという拡張子のファイルが書き出されます。このファイルがいわゆる元のソースということになりますので、これを本番用モジュールにビルド(コンパイル)していきます。
xcode

Built&Settingの設定を変更する

.xcodeprojを本番用モジュールにビルドするにあたって、ProjectとTargetの二箇所のビルド設定を修正する必要があります。修正する箇所はいずれもCode Signing(コードサイニング)であり、ここでAppsIDがバンドルされた配布用のプロビジョニングファイルを選択します。選択する箇所はDebugとReleaseの4箇所になり、すべて同じプロビジョニングファイルを選択します。

ビルドを行う

ビルドを行う前にやって一つやっておくことがあります。メニュバーのProductから「Edit Scheme」を開き、「Build Configulation」をreleaseに変更します。この後に、再度ProductからBuildをクリックしてビルドを開始します。

ビルドしたソースを圧縮して.ipaファイルに変換する

ビルドしたら、「***.xcodeproj.適当に振られる文字列」というフォルダが生成されます。生成される場所についてはメニューバーのXcodeのドロップダウンリストでPrefarenceを選択して、立ち上がったウインドウのLocationsタブを開くと、「Derived Data」という項目があり、そこに書き出されるフォルダのパスが書いています。パスにしたがってフォルダを開いていくと、中にBuildというフォルダが生成されており、その下層に「release-iphoneos」フォルダがあり、それを開くと「***(任意の名称).app」というフォルダがあるので、それを圧縮します。普通に圧縮するとZIPになるので、拡張子を.ipaに変更してください。

iTunes Connectでアップするアプリの登録を行う

Manage your Appsで新たに、もしくはアップデートするアプリを登録します。詳細はまたの機会にしますが、この作業をしないと、モジュールをアップロードすることが出来ません。

Application Loaderを使ってアップロードする

AppStoreにモジュールをアップするためだけのツール、それが「Application Loader」です。このアップローダーはXcodeをインストールすると一緒についてきます。画面を立ち上げると「Deliver your App」というボタンがあるのでそれをクリックします。アップするアプリのを選択する画面に移るので先ほど登録したアプリを選択します。確認画面が表示されるので誤りが無ければ、ここで先ほど作成した.ipaファイルを選択して、Startボタンをクリックします(容量にもよりますが、アップローダーで展開してからAppStoreにアップロードするので結構な時間がかかります)。アップが完了したらiTunes Connectでステータスが「waiting for upload」から「Waiting For Review」になれば一連の流れは完了です。

Apple製品はシンプルで感覚的に使えるというイメージが強いですが、実際Windowsに慣れているとその使い勝手の違いはすさまじいものがあり、なかなかに苦労します。慣れれば楽チンなんでしょうけどねー。



ここ最近スマホ用のUIフレームワークを比較検討をする機会があり、一言にスマホUIフレームワークといっても、各々一長一短があり、用途や目的によって使い分ける必要もあると感じましたので、本日はそれぞれのUIフレームワークを「導入の手軽さ」「カスタマイズ性」「動作の安定感」「デザインの美しさ」「対応範囲」の5軸で評価してみました。

今回比較するのは以下の4つ

1. JQueryMobile
jqm
以前のエントリーでも紹介した、言わずと知れたJQueyの正統なモバイル版フレームワークです。スマホのフレームワークではこれがデファクトスタンダードになりつつあります。

2. iUI
iui
これも以前のエントリーでも紹介しましたが、iPhone風のUIテイストのフレームワークです。もちろんiPhone以外にもAndroidやその他のプラットフォームにマッチしたテーマもいくつか用意されています。

3. Sencha Touch
snc
これも定番のフレームワーク。もともと有料だったのが現在では無料で利用できます。玄人向けのツールというイメージ。

4. JQTouch
jqt
割と早くから存在していたスマホUIフレームワークのパイオニア的なツール。Sencha Touchに吸収されたとのことですが、使い勝手がなかり違うように感じたので、今回の比較検討に含めました。

では早速比較してみましょう。

評価ポイント1 : 導入の手軽さ


JQuery Mobile ★★★★★
iUI ★★★☆☆
Sencha Touch ★★☆☆☆
JQTouch ★★★☆☆

JQueryMobileについては以前のエントリーで書いたように、公式WEBサイト上でジェネレータを使って直感的にサンプルソースを形成できたり、有志による日本語リファレンスが充実していたりと、導入のハードルの低さはダントツです。
iUIとJQTouchはHTMLとCSSが理解できていれば問題ありませんが、フレームワークの仕様を理解するまでは少し手間取るかもしれません。
Sencha TouchはJavaScriptの知識がある程度必要なのと、フレームワークの規模も他のものよりも大きいので仕様を把握するまでちょっと骨が折れそう。

評価ポイント2 : カスタマイズ性


JQuery Mobile ★★☆☆☆
iUI ★★★☆☆
Sencha Touch ★★★★★
JQTouch ★★★★☆

JQuery Mobileは導入しやすさの反面カスタマイズのしにくさがネックです。カッチリ組み込み過ぎて自由度が少ないというイメージ。iUIとJQTouchは結構似た感じですが、UIのパターンの多さ的にJQTouchのほうが自由度は高そうです。
Sencha Touchは逆にゴリゴリJavaScriptを弄れる人にとっては拡張性はかなり高いです。玄人向け。

評価ポイント3 : 動作の安定感


JQuery Mobile ★★☆☆☆
iUI ★★★★★
Sencha Touch ★★★☆☆
JQTouch ★★★★☆

検証の期間も短かったので、あくまで個人的な感想ですが、構成がシンプルな分、iUIが安定性が高いように感じました。JQTouchも結構いい感じですが、端末によって一部レイアウトが崩れていたりしたので、その分マイナス。Secha TouchはWebkitペースのブラウザじゃないと動かないという欠点があり、サードパーティ製のブラウザを利用しているユーザーを考慮してこの結果。JQuery Mobileは実はまだベータ版であり、動作はちょっと不安定で、かつ描画に時間がかかってしまう欠点があり、レスポンスを重視する方にはちょっとそぐわないかもしれません。ただ正式版がリリースされたら、この問題は解消されるかも。

評価ポイント4 : デザインの美しさ


JQuery Mobile ★★★★★
iUI ★★☆☆☆
Sencha Touch ★★★★☆
JQTouch ★★★☆☆

個人的な意見になりますが、デザインは文句なしにJQuery Mobileが美しいです。次点はSencha Touch。 iUIはちょっとシンプルすぎる気がします。JQTouchは悪くないですが、ちょっとチープな感じがします。どの道、デザインも多少なりともカスタマイズして利用することになるので、余り気にするところではないかもしれませんが。

評価ポイント5 : 対応範囲


JQuery Mobile ★★★★★
iUI ★★★★☆
Sencha Touch ★★☆☆☆
JQTouch ★★★★☆

どのフレームワークも主要なプラットフォームは抑えていますが、Sencha TouchについてはWebkitブラウザのみ対応なので、ちょっと不安があります。

総括すると、すばやく、美しいデザインのサイトを作りたいならJQuery Mobile、カスタマイズ性を求めるならSencha Touch、安定感を取るならJQTouchかiUIといった感じです。ただ、JQTouchに関してはSencha Touchに吸収されたという事情もあり、今後の発展という意味では期待できないかもしれません。