2013年8月24日土曜日

Androidアプリ開発再入門

1. 環境セットアップ
Android SDKとeclipseをインストールして設定
パスを通すなど

2. アプリのライフサイクル
onCreate, onStart等のアプリの挙動を把握

Log.vをつかってDDMSパースペクティブのLogCatビューに表示すると良い。
そのままだといろんなログが出てしまって見づらいので、
LogCatビューにあるプラスボタンを押下してフィルターを作成するとよい。

3. イベントプログラミング
まずは慣れるため、buttonクリック時にログ出してみる。
http://d.hatena.ne.jp/jitsu102/20110831/1314796481

どうやら4パターンの実装方法があるらしい。
自分としては2が一番好ましかった。
activity_main.xmlに追加したボタンに、onClickプロパティを追加するだけ。
関数名は自由で、追加した関数をjavaソース側で実装すればOK。
ちなみに1はクラス内に変数定義してるので、いっぱいオブジェクト出てきた時管理が面倒だなーっていう発想で却下。

4. ページ遷移
複数のアクティビティ遷移を実装する。
Intentクラスを利用して、
     Intent it = new Intent( いまのアクティビティ, 遷移先.class );
    this.startActivity(it);

って感じに実装すればOK。
ここまでくれば紙芝居レベルなら実装できる。

5. センサー機能の利用
SensorEventListenerのインタフェースを利用して加速度機能を利用。
加速度センサーを使ってこんな感じで実装。

    public void getAcc(View v){
    manager = (SensorManager)this.getSystemService(SENSOR_SERVICE);
    List<Sensor> sensors = manager.getSensorList(Sensor.TYPE_ACCELEROMETER);
    if(sensors.size() > 0){
    Sensor sensor = sensors.get(0);
    manager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_FASTEST);
    }    
    }


@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
String result = "";
if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){
result =  "X: " + String.valueOf(event.values[0]) + "\n";
result += "Y: " + String.valueOf(event.values[1]) + "\n";
result += "Z: " + String.valueOf(event.values[2]) + "\n";
}
TextView text1;
text1 = (TextView) this.findViewById(R.id.textView1);
text1.setText(result);
    Log.v(TAG, "onSensorChanged: \n" + result);
}



6. Google Playに公開
Android toolをつかってapkファイルを作成
http://blackcapsule.blog107.fc2.com/blog-entry-15.html


2013年8月19日月曜日

ウェブサイト構築について再考したところ重要だと思ったことのまとめ


父の仕事の都合でウェブサイトをスクラッチから書くことになった。
制約としてはお金をびた一文も使わないこと。
当時の私は「HTMLなにそれおいしいの?」状態でした。

三段階で私の成長過程をまとめてみる。


1. HTMLとCSSで紙芝居

とりあえずググりまくる。
「HTML 入門」とか、「CSS 入門」とか。
dotinstallに出会えたのは嬉しかった。

とりあえずテキストエディタという原始的な手法でhtmlファイルやらcssファイルを作成してお勉強。
クソみたいなサイトを量産するのです。
結果、HTMLとCSSで紙芝居ができればおk。



2. エディタを見直す

少し経つと腹立ってきます。
テキストエディタがまじクソなので。
いちいちタグ名とか覚えてらんねーし
複数行を選択しつつTabキー押してインデントとかできねぇし。
ここでeclipseというものに出会う。
コードの予測とかしてくれてすご~く助かりました。
ただ一見よく見えたのですが実はクソでして、、、、
重たすぎるんです。。。
もっさりもっさり動くから自分の思考スピードももっさりしてきて。。。

最近見つけたのはsublime text2です。
これ、デフォルトだと日本語扱えないので、
UTF8をShift-JISに変更して云々っていうプラグインを入れると実用に堪えるようになります。
色付けがそのまんまできれいなのでマジおすすめ。


3. ウェブデザイン&マッシュアップ

今までゼロからスクラッチでコードを書いてきた人ならわかると思うけど、
毎回毎回コード書くのまじだりぃんだけどぉおおおおおおおって気持ちになります。

車輪の再発明という言葉があります。
賢い人なら自然と避けてるんでしょうね。

今まではとにかくどうやって実装するかを考えぬいてきた。
思考の始点がダサいんだよね。
本当に大切なのは最初っからどうやって楽するかを考えることだと思います。

楽するために脳味噌使うといろんなことが見えてきます。

例えばウェブデザイン。
ゼロから作るのだるいし、そもそも大したものにならない。
これが車輪の再発明。
そこでマシな方法としては「テンプレート」とかでググりまくること。
ある程度いいなーって思えるものがあればダウンロードしてコードを見る。
そのあと理解してパクる。
HTML, CSSレイヤーの知識なんてこんなもんで十分だと思われます。
素人レベルのサイト作る水準であれば。

コードの流用スキルとかは人のコード見て学んだ。
ナビゲーション部分をHTMLでハードコードして運用困難になった経験もあったなぁ。。
Javascriptのdocument.writeとかで無理やり吐き出させて複数HTMLで同じファイル呼び出すことで無理やり解決したりもした。


人の手を借りるという意味で、
マッシュアップという言葉もしっかり理解しておく。
Web API, カスタム検索などなどで人様が作ったコードを借りてくるわけです。
多分ここをパーペキ(パーフェクト完璧)に理解するともう最強。
ここからはPHPとかサーバーサイドJavaとかが必要になってくるのかな。