MacBook Air買ってもうた
3連休で実家(大阪)に帰ってます。
前から欲しかったMacBook Airを東京で買わず、なぜか大阪で買ってしまいました。中古の初代Air、HDD版やけど。
#持って帰るのん大変や。。。
でも、これはええ。。。。前の人も大事に使ってはったんでしょう、状態もいい。。。
初期で\226,000が、\107,000はお買い得かなと。
OS再インストール済やったんですが、やっぱり自分で入れ直したいんで、今日はいらんと言ったSuperDriveを明日買おうかなぁと思ってます。
なーんか
はてなキーワードでこんなことしてみたりするとこまではいったけども、最近、Objective-Cに関しては少々ないがしろにして、進めて来たので壁を感じて来ました。
Cから相当遠ざかっているのと、C++とかでオブジェクト指向組んだことないので少し感じてた違和感が大きくなって来た感じ。
もうちょっとObjective-Cを掘ってみようかなぁ。。。
AndroidでListView
基本的にレイアウト用のXMLを使わない方向で作る方針でやっています。
それでえらい苦労した。。。
XMLを使わない場合だと、自前でBaseAdapterクラスを拡張して、getView()の中でList内の要素を生成しないといけないらしい
import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; public class top extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // レイアウトビューを作成 LinearLayout linearLayout = new LinearLayout(this); // 垂直方向にViewを追加する linearLayout.setOrientation(LinearLayout.VERTICAL); // 親ビューとして配置する setContentView(linearLayout); // TextViewを作成 TextView title = new TextView(this); // 文字を指定する title.setText("Hello World!"); // 背景色をグレーに設定 title.setBackgroundColor(Color.rgb(128, 128, 128)); // TextViewの高さを40ピクセルに指定 title.setHeight(40); // フォントサイズを20ピクセルに指定 title.setTextSize(20.0f); // 上下左右で中央に指定する title.setGravity(Gravity.CENTER); // 親ビューにTextViewを子ビューとして配置する linearLayout.addView(title); // ListViewを作成する ListView list = new ListView(this); // ListViewにデータを設定する list.setAdapter(new TestAdapter(this)); // ListViewをサブビューとしては貼付ける linearLayout.addView(list); } // BaseAdapterクラスを拡張して自前で作成する private class TestAdapter extends BaseAdapter{ private Context mContext; private String[] data = {"Tokyo", "Osaka", "Nagoya", "Sapporo"}; // コンストラクタ public TestAdapter(Context context) { mContext = context; } // データ数を返す public int getCount() { return data.length; } // dataの中身を返す public Object getItem(int position) { return data[position]; } // ユニークIDを返す public long getItemId(int position) { return position; } // Listの中身を生成する public View getView(int position, View convertView, ViewGroup parent) { TextView tv; if(convertView == null){ tv = new TextView(mContext); }else{ tv = (TextView)convertView; } tv.setText(data[position]); return tv; } } }
こんな風になった!
AndroidでとりあえずタイトルっぽくHello World!もしてみた
昨日はそのままHello Worldとしてみただけなんですが、今回はiPhoneのNabigationBarのようにHello Worldと出してみます。
iPhoneより分かりやすいような気がする。
import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.Gravity; import android.widget.LinearLayout; import android.widget.TextView; public class top extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // レイアウトビューを作成 LinearLayout linearLayout = new LinearLayout(this); // 垂直方向にViewを追加する linearLayout.setOrientation(LinearLayout.VERTICAL); // 親ビューとして配置する setContentView(linearLayout); // TextViewを作成 TextView title = new TextView(this); // 文字を指定する title.setText("Hello World!"); // 背景色をグレーに設定 title.setBackgroundColor(Color.rgb(128, 128, 128)); // TextViewの高さを40ピクセルに指定 title.setHeight(40); // フォントサイズを20ピクセルに指定 title.setTextSize(20.0f); // 上下左右で中央に指定する title.setGravity(Gravity.CENTER); // 親ビューにTextViewを子ビューとして配置する linearLayout.addView(title); } }
出た、出た!
AndroidでHelloWorld!
iPhoneの方も進めてたりしますが、少し気分転換にAndroidしてみました。
Androidのインストールガイドを元に進めました。
で、簡単にHello Worldを!
Eclipseでプロジェクトファイルを作成するとsrcディレクトリに一つだけファイルができているので、そのファイルを編集します。
僕の場合はhelloWorld.javaとしたので、そのファイルを編集します。
helloWorld.java
package com.tryoutlab; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; // ←追記 public class helloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView text = new TextView(this); // ←追記 text.setText("HelloWorld!"); // ←追記 setContentView(text); // ←追記 //setContentView(R.layout.main); ←コメントアウトする } }
さて、これでエミュレータで実行!
出た!出た!
Javaベースなので、Objective-CのiPhoneよりは経験値上でしかないけど取っ付きやすいかも。。。
いろんなUI触ってみたいなぁ。Android Dev Phone1欲しいなぁ。
今やりたいこと
今すっごい試してみたいことを並べてみた。
- 分野
- AR(Augmented Reality:拡張現実)
- 画像認識(OpenCVとか)
- リコメンデーション
- データ視覚化
- フィジカルコンピューティング
- ゲームAI
書いてみて読み直して思ったことやけど、分野の範囲を纏めてみるとiPhoneとかAndroidで出来ると何か一歩突き抜けれるんじゃないかってとこに落ち着いてるのかも。
#あとのプログラミング言語とか、インフラ部分はそれに伴うってとこやとは思うけど。
でも、今はSliceHostとかでVPS使ってたり、AmazonのEC2使ってたりするんで大規模サービスのような実験も簡単にできるし、どうやってスケーリングって出来るんかなぁってとこもあるのは事実やし。
う〜ん、とは言え、何かアウトプット作りたいので、方針決めて優先順位決めんとだめですね〜。