• 検索結果がありません。

About me! 足立昌彦 / +Masahiko.Adachi )! バイドゥ株式会社技術顧問 (Simeji)! 株式会社カブク Co-Founder! Google Developer Expert (Android)

N/A
N/A
Protected

Academic year: 2021

シェア "About me! 足立昌彦 / +Masahiko.Adachi )! バイドゥ株式会社技術顧問 (Simeji)! 株式会社カブク Co-Founder! Google Developer Expert (Android)"

Copied!
36
0
0

読み込み中.... (全文を見る)

全文

(1)

Masahiko Adachi

@adamrokcer / +Masahiko.Adachi

28

th

Sep, 2013

(2)

!  

足立昌彦

( @adamrocker / +Masahiko.Adachi )

!  

バイドゥ株式会社 技術顧問

(Simeji)

!  

株式会社カブク

Co-Founder

(3)

!  

Support Libraryの一部

(4)
(5)

!  

AndroidのSDKはどんどん進化している

!  

今や

r22.2.1

!  

古い

SDKを救うのがSupport Library

!  

バックポートすべきはどんなクラス?

!  

必要

or 便利なクラス

→つまり、効率よく新

SDKをチェックできる

(6)

v4

(API Level 4) -  Android1.6 – 15 packages 104 classes

v7

(API Level 7) -  Android2.1.x – 7 packages 42 classes

v8

(API Level 8) -  Android2.2.x - 1 package 51 classes

v13

(API Level 13) -  Android3.2 – 1 package 4 classes

(7)
(8)

!  

TaskのBack Stackを制御する

(9)
(10)
(11)
(12)

 NavUtils#navigateUpTo( srcActivity, upIntent )   Back Stack内で指定したActivityを起動  TaskStackbuilder#addNextIntent( nextIntent )  TaskStackBuilder#startActivities( bundle )   addNextIntent()メソッドでBack Stackを構築して   startActivities()メソッドでTopのActivityを起動

(13)

AsyncTaskLoader

!  

非同期でデータがロードできる

!  

Android3.0と同じFrameworkをわざわざSupport

Libraryに実装

(14)

public Loader<Cursor> onCreateLoader(int id, Bundle args) {

return new CursorLoader(this, Contract.TABLE1.contentUri, null, null, null, null);

}

public void onLoadFinished(Loader<Cursor> loader, Cursor c) { c.moveToFirst();

do {

for (int i = 0; i < c.getColumnCount(); i++) { String v = c.getString( i ); } } while (c.moveToNext()); } コンテンツが更新されると 自動で呼び出される

(15)

LocalBroadcastManager

!  

アプリ内で閉じた

Broadcast Intentが発行できる

!  

他のアプリがデータを受け取ることがないので

Activityを疎結合させたままセキュアなデータ通

信ができる

   LocalBroadcastManager.getInstance(context).sendBroadcast(intent);

(16)

!  

API Level 1 から存在するSparseArrayの拡張

!

LongSparseArrayなども使える

!  

SQLiteの_IDがLongなので、キャッシュに効果大

!

Hashmapのように使えるが性能は絶大に良い。

Key値がPrimitiveなのでオブジェクトを作らずメ

モリ効率も高いので絶必!

 

 SparseArray<String> map = new SparseArray<String>();  map.put( 11, “eleven” );

(17)

DrawerLayout

(18)

 getActionBar().setDisplayHomeAsUpEnabled(true);  getActionBar().setHomeButtonEnabled(true);

 drawerToggle = new ActionBarDrawerToggle(   this, mDrawerLayout,

  R.drawable.icon, R.string.open_label, R.string.close_lable);  mDrawerLayout.setDrawerListener(drawerToggle);

(19)

protected void onCreate(Bundle data) { super.onCreate( data );

setContentView( R.layout.main );

mSide = new SimpleSideDrawer( this );

mSide.setLeftBehindContentView( R.layout.behind_menu_left ); }

(20)

!  

マルチペインのメニューが作れる

(21)
(22)

!

ActionBarがAndroid 2.1にキター!

 class ActionActivity extends ActionBarActivity {  }

/res/values/styles.xml

(23)
(24)
(25)

What’s Volley

簡単で速い非同期

HTTP通信ライブラリ

(26)
(27)

AsyncTaskとの違い

!

AsyncTaskよりシンプル

!  

Viewとの連携でより簡単

!  

通信まわりの実装が限りなく隠蔽されている

(28)
(29)
(30)
(31)

Volleyの実装

(32)

!  

通信順序を入れ替えられる

!  

キャッシュできる、キャッシュアルゴリズムも

変更できる

!

HttpClientとHttpUrlConnectionのバグを回避して

くれる

!  

通信のデバッグが簡単

(33)

Volleyのはじめ方

!

GitのVolleyプロジェクトをClone

!  

Volleyのコードを自分のプロジェクトにImport

!

Volley.newRequestQueue( context );

  git clone https://android.googlesource.com/platform/frameworks/volley

サンプルアプリつくりました

(34)

!  

世界ライブラリランキング

!

AppBrain

(35)

!

NavUtilsとTaskStackBuilderでPage Navigationをデザイン

!

AsyncTaskLoaderで非同期データアクセス

!

LocalBroadcastManagerでアプリ内で暗黙のIntent

!

SparseArrayで高速・軽量Hashmap

!

DrawerLayoutで憧れのDrawer Navigation

!  

Android 2.1からでも簡単にActionBar

!  

Volleyで超簡単に大量の非同期HTTP通信

(36)

Discover

Support Library

Masahiko Adachi

@adamrokcer / +Masahiko.Adachi

28

th

Sep, 2013

参照

関連したドキュメント

訂正前

当法人は、40 年以上の任意団体での活動を経て 2019 年に NPO 法人となりました。島根県大田市大 森町に所在しており、この町は

2022.7.1 東京電力ホールディングス株式会社 東京電力ホールディングス株式会社 渡辺 沖

東京電力パワーグリッド株式会社 東京都千代田区 東電タウンプランニング株式会社 東京都港区 東京電設サービス株式会社

東電不動産株式会社 東京都台東区 株式会社テプコシステムズ 東京都江東区 東京パワーテクノロジー株式会社 東京都江東区

東京電力パワーグリッド株式会社 東京都千代田区 東電タウンプランニング株式会社 東京都港区 東京電設サービス株式会社

東電不動産株式会社 東京都台東区 株式会社テプコシステムズ 東京都江東区 東京パワーテクノロジー株式会社 東京都江東区

東電不動産株式会社 東京都台東区 東京発電株式会社 東京都台東区 株式会社テプコシステムズ 東京都江東区