Android だけではありません.
iPhone やタブレットやMacなどすべてが
分かりやすくまとめられています.
Device Metrics - Google Design
いままでなんでなかったのか.
とりあえず, デザインや開発に便利に使えますね.
Android だけではありません.
iPhone やタブレットやMacなどすべてが
分かりやすくまとめられています.
Device Metrics - Google Design
いままでなんでなかったのか.
とりあえず, デザインや開発に便利に使えますね.
今年秋の予定だそうです.
Apple、「iOS 9」にAndroidからの簡単移行ツール「Move to iOS」 - ITmedia ニュース
移行できるもの
- 連絡先
- メッセージ履歴
- カメラで撮影した写真・動画
- ブラウザのブックマーク
- メールアカウント
- カレンダー
- 壁紙
- DRMフリーの音楽・書籍
Android上でリソースにアクセスできるものは
「アプリ-アプリ間で」すべて移行できるようです.
これまでもすでに移行の方法はありましたが,
主として「PCを経由して」の方法でした.
Android と iPhone 間のデータ移行の説明をながめる
これが「PCを経由」せずにスマホ同士で移行できるとなれば
便利っちゃあ便利だけども.
整理しながらコツコツ移行しようかな.
[I/O 2015] Chrome Custom Tabs Will Add Easy And Rich Web Content To Any App With Chrome Capabilities
サービス経由で「ウォームアップ」,「URL先読み」を行って
高速に開く.
公開されている Googleサンプルのうち利用するヘルパークラスなどは
前回エントリを参照.
ウォームアップも同時に行う.
アクテビティのライフサイクルに合わせて.
public class SampleActivity extends AppCompatActivity implements CustomTabActivityHelper.ConnectionCallback { private CustomTabActivityHelper mCustomTabActivityHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mCustomTabActivityHelper = new CustomTabActivityHelper(); mCustomTabActivityHelper.setConnectionCallback(this); } @Override protected void onStart() { super.onStart(); mCustomTabActivityHelper.bindCustomTabsService(this); } @Override protected void onStop() { super.onStop(); mCustomTabActivityHelper.unbindCustomTabsService(this); } @Override protected void onDestroy() { super.onDestroy(); mCustomTabActivityHelper.setConnectionCallback(null); } @Override public void onCustomTabsConnected() { } @Override public void onCustomTabsDisconnected() { } }
開くであろうURLが確定した時点でバックグランドで先読み.
mCustomTabActivityHelper.mayLaunchUrl(uri, null, null);
前回とほぼ同じ.
タイトル, アニメーションを付けてなめらかな体感に.
R.anim.slide_* はサンプルのものを利用.
CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder(mCustomTabActivityHelper.getSession()) .setShowTitle(true) .setStartAnimations(this, R.anim.slide_in_right, R.anim.slide_out_left) .setExitAnimations(this, android.R.anim.slide_in_left, android.R.anim.slide_out_right) .build(); CustomTabActivityHelper.openCustomTab(this, customTabsIntent, uri, new WebViewFallback());
public class SampleActivity extends AppCompatActivity implements CustomTabActivityHelper.ConnectionCallback { private CustomTabActivityHelper mCustomTabActivityHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mCustomTabActivityHelper = new CustomTabActivityHelper(); mCustomTabActivityHelper.setConnectionCallback(this); } private void preFetchUrl(Uri uri) { mCustomTabActivityHelper.mayLaunchUrl(uri, null, null); } private void open(Uri uri) { CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder(mCustomTabActivityHelper.getSession()) .setShowTitle(true) .setStartAnimations(this, R.anim.slide_in_right, R.anim.slide_out_left) .setExitAnimations(this, android.R.anim.slide_in_left, android.R.anim.slide_out_right) .build(); CustomTabActivityHelper.openCustomTab(this, customTabsIntent, uri, new WebViewFallback()); } @Override protected void onStart() { super.onStart(); mCustomTabActivityHelper.bindCustomTabsService(this); } @Override protected void onStop() { super.onStop(); mCustomTabActivityHelper.unbindCustomTabsService(this); } @Override protected void onDestroy() { super.onDestroy(); mCustomTabActivityHelper.setConnectionCallback(null); } @Override public void onCustomTabsConnected() { } @Override public void onCustomTabsDisconnected() { } }
イベントからプリフェッチしてからのオープンすればよい.
しかし「先読みのタイミング」て…
(つづく)