2013年4月30日火曜日

Titaniumでアプリ開発(9) 現在地を表示する


GPSから現在地情報を取得するにはgetCurrentPositionメソッドを用います

var win = Ti.UI.createWindow({
title: 'Home',
backgroundColor: '#F4F4F4'
});

var view = Ti.UI.createView();

// 最初に中心となる位置をセットしておく
var mapview = Ti.Map.createView({
mapType: Ti.Map.STANDARD_TYPE,
region: {latitude:35.6911, longitude:139.7067, latitudeDelta:0.01, longitudeDelta:0.01},
animate: true,
regionFit: true,
width: 300,
height: 400
});

view.add(mapview);
win.add(view);

Titanium.Geolocation.purpose = 'サンプル';

Titanium.Geolocation.getCurrentPosition(
function(e) {
if(!e.success || e.error){
alert('位置情報が取得できませんでした');
return;
}
// 現在地をセット
latitude = e.coords.latitude;
             longitude = e.coords.longitude;
// 現在地を動的に表示する
var currentPos = Titanium.Map.createAnnotation({
latitude: latitude, 
longitude: longitude, 
pincolor: Titanium.Map.ANNOTATION_RED,
animate: true
});
    mapview.addAnnotation(currentPos);
           mapview.show(); // 隠していた地図を表示する
            mapview.setLocation({   // 現在地まで地図をスクロールする
            latitude:latitude,
            longitude:longitude,
            latitudeDelta:0.01,
            longitudeDelta:0.01
            });
}
);

win.open();

2013年4月29日月曜日

Titaniumでアプリ開発(8) Mapを表示する

MapViewを用いるとMapが表示できます

MapViewを用いた例
var win = Ti.UI.createWindow({
backgroundColor: '#F4F4F4'
});

var view = Ti.UI.createView();

var map = Ti.Map.createView({
mapType: Ti.Map.STANDARD_TYPE,
region: {latitude:35.6911, longitude:139.7067, latitudeDelta:0.01, longitudeDelta:0.01},
animate: true,
regionFit: true,
width: 300,
height: 400
});

view.add(map);
win.add(view);
win.open();

[説明]
mapType:以下の3つが用意されています。
  • Titanium.Map.STANDARD_TYPE:全ての道路と一部の道路名を表示する、衛生画像は表示しない。
  • Titanium.Map.SATELLITE_TYPE:衛星画像を表示する。
  • Titanium.Map.HYBRID_TYPE:衛星画像や道路の名前を表示する。
region:latitude(緯度),longitude(経度),latitudeDelta,longitudeDelta(縮尺)

[実行結果]
新宿周辺が表示される。





















ピンの操作
var shinjuku = Titanium.Map.createAnnotation({
latitude: 35.6911, longitude: 139.7067, 
pincolor: Titanium.Map.ANNOTATION_RED,
})


[説明]
pincolor:ピンの色。以下の3つが用意されている。
  • Titanium.Map.ANNOTATION_GREEN
  • Titanium.Map.ANNOTATION_PURPLE
  • Titanium.Map.ANNOTATION_RED

[実行結果]
ピンが追加された。

























ひとまず、現在地の緯度経度を確認出来るという簡単なアプリを作ってみようと思います。

2013年4月27日土曜日

Titaniumでアプリ開発(7) PROVファイルの読み込みとビルド













前提:対象のアプリのtiapp.xmlに前回取得したAppIDを入力しておく。
1. Titanium Studioを起動しiOS Deviceをクリックします。

























2. Browseから前回ダウンロードしたPROVファイルを選択します。




 3. Finishでビルドされ、iTunesからデバイスに自動で転送されます。

なんとか転送できた。全く未経験だったので、初回は結構大変でした。
以下、参考にしたサイト。
http://tande.jp/lab/2012/01/1621
http://www.kayakinglifestyle.jp/
http://kentaro-shimizu.com/lecture/iphone/step3.html
http://www.adobe.com/jp/devnet/flash/articles/iphone_flash_1.html#articlecontentAdobe_numberedheader_2

Titaniumでアプリ開発(6) AppIDの登録とProvisioning Profile の作成

AppIDの登録
1. Developerサイトから[Identifiers]-[AppID]-右上の[+]をクリックします。











2. 「Description」:説明文
 「Bundle ID」:アプリ固有の名前
        ドメイン名を逆さまにした「com.domainname.appname」などが推奨。
        Titaniumの設定でも使う









































Provisioning Profileの作成
1. Developerサイトから[Provisioning Profiles]-[Distribution]-右上の[+]をクリックします。
















2. 指示に従ってすすめていく。前回までで登録した、Developer、AppID、デバイスを選択する。全て入力したらGenerateしてPROVファイルをダウンロードします。




Titaniumでアプリ開発(5) 開発デバイスの登録

1. 前回と同様にDevelopサイトへアクセスします。
2. Devicesから[+]をクリックし登録を開始します。
 Name:デバイス名(何でもOK)
 UDID:デバイスとiTuneをつなげて確認
    →シリアルNoのとこをクリックすると変わります
    →右クリックでコピー可です
































3. Submitして確定させます。

アカウント1つにつき、100個までデバイス登録できるそうでsy。

2013年4月26日金曜日

Titaniumでアプリ開発(4) 証明書の取得と登録

@yktmnbさんの全体図を拝借。
http://j.mp/kJpj8r

1. Macで[アプリケーション]-[ユーティリティ]-[キーチェーンアクセス]を起動し、「証明書署名要求ファイル(CSRファイル)」を生成する。
下記サイト参照
http://www.adobe.com/jp/devnet/flash/articles/iphone_flash_1.html#articlecontentAdobe_numberedheader_2

2. iPhone Developer Programで1.で作ったCSRを登録
















3.  登録すると証明書がダウンロードできるようになるのでダウンロード。

4. 3. でダウンロードした証明書をダブルクリックするとインストールされる。
キーチェーンアクセス


[2013/4/27追記]
4.の証明書をデスクトップなどに書き出しておく必要あり。

あとやることは・・・
・iPhoneのデバイス情報の登録
・AppIDの取得
・Titanium Studioプロジェクトの設定
・Provisioning Profilesの登録
わりと大変?

2013年4月23日火曜日

Titaniumでアプリ開発(3) Developer登録

iPhoneにアプリを転送するにはDeveloper登録が必要です(年8400円)
https://developer.apple.com/jp/













登録するとメールでIDが届きます。メールのIDをクリックしてアクティベート!
が、失敗。赤線部分をクリックして確認してみます。



問い合わせしないといけないらしい。。。
















日本語でもOKだそうです。



[2013/4/25追記]
どうやらAppleIDをローマ字表記にして、Developerサイトと紐付けしないといけないようです。

Titaniumでアプリ開発(2) Hello Worldを表示する

がんばって環境構築したら、HelloWorldを表示してみます。
右クリック-[New]から[Titanuim Project]を選択し、プロジェクトを作成。

1. app.jsを開く
2. コーディング
 ・windowの作成
 ・viewの作成
 ・labelの作成
 ・labelをviewに追加
 ・viewをwindowに追加
3.iphoneシミュレータを起動



















HelloWorldが表示された。
簡単!


















参考:http://dotinstall.com/lessons/basic_titanium

2013年4月16日火曜日

Titaniumでアプリ開発(1) 環境構築

アプリ作ってみたいと思いJSで手軽に作れるということで、Titanumについてちょっと勉強してみます。
まずは環境構築。

Titaniumとは?
iPhoneアプリ→Objective-C
Androidアプリ→Java
Titanium→Javascriptで開発が可能に!

出来ること
・加速度センサや電子コンパスなどのハードウェアへアクセス
・音声や動画の再生・録画・録音
・HTTPClientによる通信
・SQLiteによるデータベース処理
→無料で利用出来る

参考にするサイト

2013年4月12日金曜日

APIの一括置換

ソースをeclipseで一括置換する方法をメモ
  1. [プロジェクト・エクスプローラー]で対象とするフォルダを選択
  2. メニューの[検索]-[ファイル]をクリック
  3. 以下のような画面が表示されるので、置換前のテキストを入力しスコープをエンクロージング・プロジェクトに設定












よく使う正規表現もついでに記載
\s  ... 半角空白もタブも同一扱い
( ) ... 検索パターンでこれを使うと、置換パターンで\1,\2,\3,...と利用できる。

例:
検索パターン:(<TESTTAG.*type[\s]*=[\s]*)("checkbox")
置換パターン:\1"input" style=\2





2013年4月10日水曜日

SVNでのバージョン情報などの自動埋め込み(その2)

コミット時に自動でプロパティ設定を反映させることが、うまくいかなかったので別の方法をメモ。
eclipse上でキーワード展開したいファイルを含むフォルダを右クリック-[チーム]-[プロパティの設定]
  • プロパティ名をsvn:keywords
  • テキストプロパティに展開したいキーワード
  • 一番下にチェック












これでフォルダ配下のファイルが一括で設定される。
もちろん1ファイルだけでも可能。手順は同じ。

2013年4月9日火曜日

SVNでのバージョン情報などの自動埋め込み



Subversionではコメントに特定キーワードを入れておいてコミットすることで情報を置換させることができる。

使用できるキーワードは以下の通り。
  • Date:commit日時
  • Revision:コミット時のリポジトリのRevision
  • Author:コミットしたユーザ名
  • HeadURL:ファイルのURL
  • Id:ファイル名、Rev、ユーザ名の組み合わせ

使用例
/**
* @fileoverview 画面名
* @author ascii
* $Date$
* $Revision$
* $Author$
* $HeadURL$
* $Id$
*/


なお上記を自動で設定するには、.subversion/configファイルを以下のように修正する必要がある。
enable-auto-props = yes
### Section for configuring automatic properties. [auto-props]
*.js = svn:keywords=HeadURL Date Revision
*.html = svn:keywords=HeadURL Date Revision
js,htmlをinput/addしたときに自動で
svn propset svn:keywords="HeadURL Date Revision"
をするようになる。

eclipseの設定として[ウィンドウ]-[設定]-[ツール]-[SVN]で上記configファイル
のパスを設定ファイルの場所で指定する。




















[2013/04/10:追記]
上記設定でコミットしたが、うまくキーワード展開されない。
パスが間違っている?謎?



2013年4月5日金曜日

nkfツールを用いた文字コードの一括置換

コマンドプロンプトとnkfツールを用いた場合。

  1. nkfツールをインストールし、nkf.exeをパスの通ったディレクトリに配置
  2. コマンドプロンプトを立ち上げる
  3. 変換したいファイルのあるディレクトリへ移動
  4. 下記の4つのコマンドを入力 
今回はS-JISのjsファイルをUTF-8に変換
forfiles /m *.js /s /c "cmd /c nkf -w < @file > @fname.js_utf8"
forfiles /m *.js /s /c "cmd /c ren @file @fname.js_org"
forfiles /m *.js_utf8 /s /c "cmd /c ren @file @fname.js
forfiles /m *.js_org /s /c "cmd /c del @file"
以下のコマンドで、所定フォルダ内の全ファイルの文字変換が行える。
元のファイルは、_org付の拡張子のファイルとなる。
・xxxxxx.js → xxxxxx.js_org
UTF-8ファイルは、作成時に_utf8付のファイルとし、元のファイル名にする。
・xxxxxx.js_utf8 → xxxxxx.js
最後のコマンドで、xxxxxx.js_orgファイルを削除。

forfile
あるフォルダの下にあるファイルをすべて走査して、例えば6カ月以上更新されていないものを抽出/削除したり、特定のテキスト処理を行ったりしたい場合に利用
変数意味
@fileファイル名(拡張子も含む)
@fname拡張子なしの基本ファイル名部分
@ext拡張子
@pathファイルのフルパス名
@relpath開始フォルダからのファイルの相対パス名
@isdirフォルダ名ならTRUE、ファイル名ならFALSE。if内部コマンドと組み合わせ、「/C "cmd /c if @isdir==FALSE notepad.exe @file"」などのように利用する
@fsizeファイル・サイズ(bytes単位)
@fdateファイルの更新日
@ftimeファイルの更新時間

ポート番号の使用状況を調べる

netstat
ネットワーク接続状態やソケット/インターフェイスごとのネットワーク統計などを確認するためのコマンド。

      netstat[ -a][ -e][ -n][ -s][ -p プロトコル][ -r][ インターバル]
オプションなし
現在の有効な接続(ESTABLISHED)のみを表示する
-a
現在のすべての接続を表示する
-e
インターフェイス・レベル(イーサネット)の統計情報を表示する
-n
出力をIPアドレスなど数値のみに抑制する(DNS逆引きを行わないなど)。ほかのオプション内容へ影響する
-s
プロトコルレベル(IP/TCP/UDP/ICMP)の統計情報を表示する
-p
プロトコルごとの接続をリストする。プロトコルにはTCPかUDPを指定する。-sとともに使用すると、そのプロトコルに関する情報のみの表示を行う
-r
ルーティング・テーブルを表示する
インターバル
この間隔で連続自動実行する。単位は秒

                      今回の場合ではnetstat -anを使用した。