You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
12 Jun 2017 第5回ではユーザーの属性が変わるたびにユーザーインターフェースが切り替わる仕組みをDataBindingで実現しました。 今回はこれをさらに改良して、切り替えのタイミングにアニメーションを挿入する方法を紹介したいと思います。 OnRebindCallback 前回のコードにアニメーションをつけるのは非常にシンプルです。まずOnRebindCallbackというものをbindingオブジェクトにaddします。 binding.addOnRebindCallback(new OnRebindCallback() { @Override public boolean onPreBind(ViewDataBinding binding) { TransitionManager.beginDelayedTransition( (ViewGroup)binding.getRoo
The Maskarade project · GitHub 最近イマイチAndroidの活動ができてないんですが、Androidライブラリのメンテを諦めたわけではなくて、たとえばOrmaとかはまだやりたいことがいくつかあるのでやるつもりはあります。一方で、ちゃんと新しいメンテナがいたほうがいいなーというプロジェクトもあって、とりあえず私のメンテする気のあるなしに関わらずユーザーがいそうなAndroidライブラリを全部まとめて maskarade(マスカレード)というorganizationに移すことにしました。 何故これが必要なのかというと、新しくオーナーシップをもったメンテナを受け入れられる体制にするためにorgが必要だからです。GitHubは個人アカウントにあるリポジトリのオーナーシップをコラボレータに渡すことはできないんですよね。なので、オーナーシップを誰かに渡したいときは (1)
連続して3つの現場で同じバグが発生しているアプリを直すという経験をしたので、おそらくかなり多発している気がするこのような不幸が発生することが減るように書き残しておきます。 Fragmentのaddを何も考えずonCreateに書くとActivityのリストア時にリークする 例えば以下のようなごく単純なサンプルアプリ。 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getSupportFragmentManager() .beginTransaction()
iOSでは各ボタンにexclusiveTouchを設定していくところだが、Androidは 一箇所Styleを設定するだけでOKっぽい。 以下のように設定する。 <style name="MyTheme" parent="@android:style/Theme.Holo.Light"> <item name="android:windowEnableSplitTouch">false</item> <item name="android:splitMotionEvents">false</item> </style> <application android:label="@string/app_name" android:theme="@style/MyTheme" > これは楽だなあ。 View毎に同時タップを禁止する設定を入れることもできる。 <LinearLayout andro
こんにちは、アプリケーションエンジニアのid:takuji31です。今年の4月にはてなブックマークのチームにjoinし、はてなブックマークAndroidアプリのリノベーションを担当しました。 4月の末にはてなブックマークAndroidアプリのリノベーションが一通り完了しました。今日は大規模なアプリのリノベーションを完了して、実際にどうなったかを振り返ります。 はてなブックマークAndroidアプリのリノベーションについて 成果 画面ごとに優先順位をつけて、リファクタリングするものを選択した Activity/Fragment、ロジック部分のリファクタリングを行った 週に1回の定期リリースを行った やっていないこと 大きく変更が加わらないであろう画面のリノベーション 実際にやって見えた課題 大規模なアプリのコードをリファクタリングする見積の難しさ 設計の例外 途中参加したメンバーとしてリノベ
概要 Google Playのようにスクロールした時にToolbar部分を隠す単純な方法です。 SupportLibraryのみを使って実装できます。 余計な実装は極力省いていますのでActivityのみで実装してます。 注意 先に注意事項を。 これをLollipop未満のバージョンで実現するにはスクロールするコンテンツ部分に制限があります。 RecyclerViewまたはNestedScrollViewが必要になります。例えば普通のListViewではLollipop未満では実現できませんので注意です。(Lollipop以降でListViewでの実装は後述します) 実行イメージ 実装手順 gradle build.gradleは次のようになります。 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compi
Nintendo Switch 2: Everything we know about the coming release
2018/02/03追記 本記事には記述当時の古い情報が含まれます。わりと最新の情報を元にした記事がありますので、そちらも是非ご覧ください。 はじめに 皆が待ち望んでいたKotlin 1.1が3月1日にリリースされました。 様々なアップデートが含まれていますが、やはり目玉となるのはコルーチンでしょう。 この記事ではコルーチンのサポートによって実現されたasync/awaitをAndroidで使用する方法について説明します。 コルーチンとは ものすごくざっくりと言ってしまえば、コルーチンは中断・再開可能な関数です。 通常の関数は呼び出されると戻り値を返すまでそのまま進んでいきますが、コルーチンは任意地点で実行を中断して関数を抜けることができます。 また、抜けたところから抜けた時点の状態で再開することも可能です。 async/awaitとは コルーチンは色々と使い手のある機能ですが、async
Android Javaでは昔からAOSPのcoding style guidelineに則ったスタイルがとられることが多いようです。そのなかで、private fieldに "m" (member) や "s" (static member) などのプレフィクスをつけよ、というものがあります。 AOSP Java Code Style for Contributors | Android Open Source Project これはいわゆるハンガリアン記法の変種で、こういうやつですね。 class Recipe { private String mTitle; private List<String> mSteps; // ... } これについての態度はプロジェクトごとに様々ですが、たとえばクックパッド社のJavaのスタイルガイドでは明確に否定しています。 styleguide/
2014年11月08日07:55 Android 1.0から5.0まで。Android OS進化の歴史が一覧できる表がなかなかオモシロイ カテゴリAndroid 5.0Android OS Comment(0) 先日Android 5.0がリリースされましたが、Android OSの歴史がビジュアルで見ることができるなかなか興味深い表がありました。 Androidプロジェクトが始まったのは2003年。 すでに11年も経過しているんですね。 また、最初のアンドロイドOS、Android 1.0の搭載されたスマホがリリースからAndroid 5.0まで6年近く経っています。 ちなみに私、白状しますと、Android社はてっきりGoogleが設立した子会社だと思っており、元々は独立したベンチャーで後にGoogleに買収されたとは知りませんでした。。。 お恥ずかしい限りです。 それにしても、初期の
Activity,Fragmentの分割と協調動作の具体例 / Androidアプリを開発する際の俺的設計Android @eaglesakura です。 社内でプロジェクトのメインプログラマーとしてコードレビューをする機会が増えてきたので、私の考えるActivity/Fragmentの基本的な設計方針を解説します。 この実装はあくまで私が考える範囲での設計です。この考え方は2016年Q3現在のものです。 事前に読んでおくべき記事 ActivityやFragmentに関してはこの記事も読んでおくと良いです。 参考 https://developer.android.com/training/basics/fragments/communicating.html 参考 http://qiita.com/HideMatsu/items/ddf640899cbe1b2027ed 参考 http:
はじめに Androidでクラッシュしにくいアプリを作るにはどうしたらよいか? ということを考察したいと思います。 というのはこの辺の設計ノウハウに関しては 基本なはずで大事なのに残念なことにまとまっている書籍とかあまり見かけないため 先人達の知恵をお借りしつつ、私のAndroid開発経験上に基づいて備忘録として残しておきます。 ほんとは初級者向けに書きたかったのですが、実装経験やAndroid内部がある程度よくわかってないとわからないと思うので難易度高めになってしまいました。 間違ってるとか改善点があればコメント頂ければ幸いです。 この記事で紹介してるライブラリとかの導入方法はこちらも参考に 最近のAndroidネイティブ開発まとめ(2017年始版) よくあるクラッシュ(アプリが落ちる) 実運用ではCrashlyticsでクラッシュログを取ることが多いと思います。 クラッシュログを取ると
参照方法によってメモリの解放タイミングが異なる Android ではオブジェクトがヒープ領域にたまりメモリ不足が生じたとき、 ガベージコレクション(GC) が起動して不要なオブジェクトのメモリを開放してくれます。 実装コードではすべてのオブジェクトを手動で開放する必要はなく、基本的には GC の挙動に任せることでメモリ圧迫を軽減できます。特に「不要なオブジェクト」という点が重要で、GC はオブジェクトの参照状態を見て不要かどうか判断します。 参照方法にはいくつか種類があります。通常の参照方法は強参照と呼ばれますが、そのほかにソフト参照(SoftReference)や弱参照(WeakReference)と呼ばれる参照方法があります。これらの参照方法によって GC でメモリから開放されるタイミングが異なるというわけです。 ということで今回は SoftReference と WeakRefere
自分は本の草稿に誤字脱字探しをしつつ好き勝手言う係としてちょっとだけ手伝った。せっかくなので宣伝してみる。 この本はコード読みブログやアーキテクチャ解読ブログをまとめたような体裁になっている。といっても各章バラバラではなく、本としての連続性はある。そして OS というものを包括的に解説するかわりに Android の特徴的なところ、たとえば GUI フレームワークや VM のランタイムなど、をつまみ食いしている。これは正しいアプローチだと思う。伝統的な OS の話をしだすと Android ってだいたい Linux だからね。Android に限らず、この「伝統的な OS の上にあるプラットホームのレイヤ」の中身を説明した本は少ない。 そこが面白い。 この本の欠点は文章がけっこう slippery なところ。悪い意味でブログぽいというか同人誌ぽい。ただそれは「支える技術」シリーズに共通する
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く