タグ

ブックマーク / y-anz-m.blogspot.com (10)

  • Android アプリの開発でドメイン駆動設計に取り組む話

    前回に引き続き、スピーチ原稿と合わせて公開します。 (講演ではアドリブもあるので原稿とは微妙に異なることをご了承ください) 追記 : 前回の内容を読んでいない方は、先にそちらを読んでください。 前回の Droid Kaigi で私は「ドメイン駆動設計とは何か」という話をしました。 当は前回のCfPを出す時点でAndroidアプリ開発での実装の話もいれようかなと思っていたのですが、ドメイン駆動設計が何かをきちんと説明するだけでいっぱいいっぱいでした。 今回は前回の続きなので、簡単に前回の復習からはじめます。前回の話の完全版は私のブログに書いてありますので、ぜひ読んでください。 前回の説明を復習すると、ドメイン駆動設計とは ドメインエキスパートの言葉を観察し、ドメインを構成するユビキタス言語を見つけ、 ユビキタス言語を使ってドメインを適切に反映した我々のソフトウェアに役立つドメインモデルを作

    Android アプリの開発でドメイン駆動設計に取り組む話
  • Android Application Licensing

    ■ まとめ ・ Android SDK and AVD を起動し、"Market Licensing" コンポーネントをダウンロードする ・ LVL は library project として使うのがおすすめ ・ 公開者ページの「プロフィールの編集」でライセンス用公開鍵を取得 ・ ライセンスの許可・不許可の基準は Policy で設定 ・ デフォルトでは ServerManagedPolicy と StrictPolicy が用意されている ・ ServerManagedPolicy はライセンスチェックのレスポンスを SharedPreferences に保存 ・ 保存時には難読化ツール (Obfuscator が必要) ・ デフォルトでは AES暗号化を使った AESObfuscator が用意されている ・ AESObfuscator を使うには、20 個のランダムな SALT, パ

    Android Application Licensing
  • Android Spannable を使って文字列の一部を装飾する

    SpannableStringBuilder を使って、文字列の一部を装飾(bold, italic, typeface, color, size) することができます。 こんな感じ。 public class SpannableSampleActivity extends Activity { private static StyleSpan sBoldStyleSpan = new StyleSpan(Typeface.BOLD); private static TypefaceSpan sSerifTypefaceSpan = new TypefaceSpan("serif"); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setCont

    Android Spannable を使って文字列の一部を装飾する
  • Android ScrollBar (スクロールバー)の位置

    が指定できます。 いまいち違いがピンとこなかったので、並べてみました。 黒が TextView の領域、水色が ScrollView の領域です。 outsideInset をよく使っていたけど、padding が十分なら outsideOverlay でも大丈夫ってことがわかった。 # Froyo(2.2)からスクロールバー(の thumb)がタッチしてない時は消える # ようになって、この画像をとるのに「4個いっぺんに触るとか無理だし!」 # ということでいろいろ調べてたら見つけました。 # 別エントリにしました。 # Android Froyo(2.2)でスクロールバーを常に表示する ちなみに xml はこんな感じ <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" andro

    Android ScrollBar (スクロールバー)の位置
  • Android Button の色や画像を変える

    Button の背景を別の色や画像に変えるには、 2つ方法があります。 最も単純な方法は Button タグのパラメータで android:background="@drawable/button_image" や android:background="#ff0000ff" のように画像や background を指定する方法です。 しかし、この場合だとボタンにフォーカスがあった 場合やボタンが押された場合でも変化がありません。 そこで、ボタンにフォーカスがあった場合や、 ボタンが押された場合の色や画像を指定する方法があります。 わかりやすくするために、色の場合と画像の場合で 分けて書きます。 ・色の場合 まず、次のような xml ファイルを drawable/ に作ります。 color_stateful.xml <?xml version="1.0" encoding="utf-8"

  • Android View の位置を取得する

    View クラスのメソッドで位置やサイズを取得するメソッドがいくつかあるので紹介します。 ■ getLocationInWindow(int[] location) ウィンドウ上でのこの View の位置を計算します。引数は長さが2以上の int 配列で、Index 0 に x 座標、Index 1 に y 座標の値が入ります。 http://tools.oesf.biz/android-4.0.1_r1.0/xref/frameworks/base/core/java/android/view/View.java#12047 12047 public void getLocationInWindow(int[] location) { 12048 if (location == null || location.length < 2) { 12049 throw new IllegalA

    Android View の位置を取得する
  • Android Viewのサイズを取得する。

    Button や EditText (もちろん LinearLayout なども) といった View のサイズを onCreate() のなかで取得しようと しても 0 になってしまいます。 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); int width = findViewById(R.id.button1).getWidth(); } これだと width には 0 が入ってしまいます。 onCreate() ではなく onWindowFocusChanged() のなかで 取得すれば 0 にならないで、実際の値が得られます。 @Override public void onW

  • Android PowerManager を使う

    PowerManager デバイスの電源状態をコントロールするためのクラス このAPIを使うと、デバイスのバッテリーライフに重大な影響を及ぼす。 なので、当に必要な時以外は WakeLocks を取得しないこと! そして可能な限り最低レベルの使用にし、必要なくなったらすぐに開放する! 1. Context.getSystemService() でこのクラスのインスタンスを取得 2. newWakeLock() で PowerManager.WakeLock オブジェクトを生成する 3. このオブジェクトのメソッドを使って、デバイスの電源状態をコントロールする こんな感じ PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wl = pm.newWak

  • Android AlertDialog の背景を変更する

    ダイアログの背景(タイトル、メッセージ、ボタン部分で色が変わっているところ)を変更するには、 android:alertDialogStyle を設定します。 res/values/styles.xml <?xml version="1.0" encoding="utf-8"?> <resources> <style name="MyTheme" parent="@android:style/Theme.Black"> <item name="android:alertDialogStyle">@style/AlertDialog</item> </style> <style name="AlertDialog"> <item name="android:fullBright">@android:color/transparent</item> <item name="android:fu

    Android AlertDialog の背景を変更する
  • Android Cloud to Device Message - C2DM - 2

    ■ C2DMに必要なもの ・Mobile Device (デバイス) ・Marketアプリがインストールされている ・2.2以上のAndroidが走っている ・Googleアカウントと紐付いている ・C2DMを利用するAndroidアプリをインストールする ・Third-Party Application Server (アプリケーションサーバ) ・開発者が用意 ・デバイス上のAndroidアプリに、C2DM Server経由でデータを送る ・C2DM Servers (C2DMサーバ) ・Third-Party Application Serverからメッセージを取り出し、 それをデバイスに送る役割を果たすGoogleのサーバ ■ C2DMの認証に必要なもの ・Sender ID (Android app用) ・アプリの開発者にひもづいたemailアカウント ・デバイスにメッセージを送る

  • 1