Skip to content

{ Tag Archives } Android

Android-Binding Before / After

プログラミング生放送 名古屋 第24回で登壇してきました。
お題は「Android-Binding Before/After」ってことで、Androidネタです。
内容難しい…って言われました、セッションネタ間違えた感(

あのBGMを脳内で再生しながら見てくださいw

Also tagged

Androidカスタムコンポーネントのススメ

はじめに
Androidアプリケーションの機能実装のアプローチとして、コンポーネント(Component / Control、Widgetと称すこともあります)を拡張していく方法があります。特にコンポーネントの振る舞いに紐づく機能は、それをActivityクラスに実装するよりコンポーネントに実装する方が、全体的にシンプルなコードになることがあります。
例として、必須入力チェック機能付きEditTextコンポーネントを作成してみます。
※いつもの如くeclipseは英語版のままなので、適宜日本語に置き換えてください

開発手順

Androidプロジェクトを作成します。プロジェクト名は「CustomComponent」、パッケージ名は「jp.tworks.android.customcomponent」としました。パッケージ名は後に使いますので覚えておきましょう。

EditTextに必須入力チェック機能を付けるために、必要な属性を考えてみます。EditTextが必須チェックを行うか否かのフラグ(boolean)と必須チェックエラーを検出したときのエラーメッセージ(String)があれば良さそうですね。

さっそく属性を定義します。/res/values/attrs.xml を追加します。
/res/values からコンテキストメニューを開き、[New] –> [Other...] を選択します。

Android XML Values Fileを選択します。

ファイル名に「attrs.xml」を入力したらFinishをクリックします。

attrs.xmlを以下のように編集します。

1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="utf-8"?>
<resources>
 
<declare-styleable name="ValidEditText">
<attr name="required" format="boolean" />
<attr name="required_message" format="string" />
</declare-styleable>
 
</resources>

declare-styleable name=”xxxxxxxx” のxxxxxxxxは、これから作成するカスタムコンポーネントのクラス名を指定しておきましょう。

次にカスタムコンポーネントのクラスを作成します。プロジェクトにクラスを追加します。srcからコンテキストメニューを開き「New」–>「Class」をクリックします。

Package名を「jp.tworks.android.customcomponent.widget」、クラス名を「ValidEditText」、継承元クラスをAndroid標準の「android.widget.EditText」としました。

ValidEditTextクラスのコンストラクタを定義しましょう。widgetには3タイプのコンストラクタがありますが、ここではそのうちの1つ(引数が2つのバージョン)を定義します。

1
2
3
4
5
6
7
public class ValidEditText extends EditText {
 
public ValidEditText(Context [...]

Also tagged

双方向Bindingが可能なAndroid Binding v0.45を使ってみた

前置き
Android Bindingが0.45にバージョンアップしていたので試してみたところ、何と双方向Bindingに対応しているではないですか!…とTwitterにつぶやいたら@nakajiに「blogに書け!」と言われたので、纏めてみようと思います。
はじめに
Android Bindingって何?ですが、一言で言うと「ViewとModel層を祖結合にしてくれるライブラリ」ってところです。これを使うとどう素敵になるの?という前置きは、@nakajiがコチラに書かれていますのでご参照ください。@nakajiの記事にもある通り、昔はView–>Modelへの片方向Bindingのみがサポートされていましたが、v0.45ではView<–>Modelの双方向Bindingが実現出来ていました。スバ、ラッシィ。
事前準備

Androidの開発環境(eclipse+Android SDK)を整えておく
Android Bindingのサイトから android-binding-0.45-update.jar をダウンロードしておく

開発手順

Androidプロジェクトを作成します。AndroidBindingSampleと名付けました。

事前にダウンロードしておいた android-binding-0.45-update.jar をプロジェクトの外部ライブラリとして参照追加します。プロジェクトの「Property」ダイアログを開き「Java Build Path」を選択し「Add External JARs…」ボタンを押下します。

android-binding-0.45-update.jar を選択します。

プロジェクトに参照が追加されました。

次に画面を作り…たいのですが、その準備として、画面に表示する文字情報をリソース(string.xml)に定義します。

<!–?xml version="1.0" encoding="utf-8"?–>
 
Android Binding
Enter your Height
Enter your Weight
Calc BMI

画面を作りましょう。…とその前に何のアプリケーションを作るかを決めていませんでした。@nakajiの記事と比較しやすいように、入力された身長と体重からBMI値を計算し表示するアプリケーションにします。画面に身長(EditText)、体重(EditText)、計算ボタン(Button)、BMI計算結果(TextView)を貼り付けます。貼り付けついでに、EditText:hintプロパティとButton:textプロパティに、string.xmlで定義した文字列を設定しておきます。

layout.xmlの内容はこんな感じです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:binding="http://www.gueei.com/android-binding/"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
[...]

Also tagged

すまべん@関西 #16でしゃべってきたよ

スマートフォン勉強会@関西 #16でしゃべってきました。お題は「マルチタッチ実装比較 iOS/Android/WindowsPhone 7」です。
思い返せば1週間前、別の勉強会の懇親会でスマートフォン勉強会関西代表の伊勢さんと飲んでたのですが

あ…ありのまま今起こった事を話すぜ!
おれは伊勢さんと飲んでいたと思ったら いつのまにか登壇していた!
はい。冗談はさておき、伊勢さん、登壇の機会ありがとうござました!
資料は以下です。
「マルチタッチ実装比較 iOS/Android/WindowsPhone 7」

Also tagged ,