Android

BottomNavigation のタブごとに Fragment の遷移履歴残すやつ

Fragment を使った画面遷移メモ を書いたときに後から追記しようと思って完全に忘れていた。 言葉ではわかりにくいのですが、以下のような画面遷移を実現するやつです。 基本的にAndroidアプリではタブごとに深い階層を持たずにActivityで遷移していったほう…

Fragment を使った画面遷移メモ

最近 Fragment 周りの実装を追う機会があり、 Android Developers の FragmentTransaction ページは各メソッドの説明が若干分かりづらいと思ったので自分用のメモとして主要なメソッドをまとめてみることにしました。 add 名前の通り Fragment を追加すると…

Android開発をする上で知っておいてほしいなと思うこと 2

nein37.hatenablog.com 上記の記事の続き。 開発時に引っかかりがちないくつかの注意点と、リリース時に知っておいたほうが良いと思うことについてまとめてみる。 開発時の知見 主にチーム開発時の注意点と標準ツールの活用、よく嵌りがちな落とし穴について…

Android開発をする上で知っておいてほしいなと思うこと

現在の Android Developers の情報は非常に充実していて、Developer Guides を順に読み進んでいくだけで開発に必要な知識とGoogleが想定している(であろう)最も基本的な実装を学ぶことができる。 特にこの「基本的な実装」というものが重要で、これを知って…

これまでに発売されたAndroid端末のdp解像度まとめ

はじめに 今年のGooglePlayコンソールのアップデートにより端末カタログという機能が追加されました。 これは以前から存在していた配信対象から特定端末を除外する機能に、端末の詳しいスペックを閲覧・検索する機能が追加されたものです。 GooglePlayコンソ…

Android端末のGoogleアシスタントから自アプリの検索を呼び出す

本日からGoogleアシスタント対応アプリを日本語で開発できるようになったようですね。 僕も最近 Google Home Mini を購入したので、日本語で使えるアプリが充実してくれると嬉しいです。 developers-jp.googleblog.com 実はAndroid端末のGoogleアシスタント…

Androidのユーザー補助サービス(Accessibility Service)は楽しい

先日クックパッドで開催された potatotips #42 でAndroid のセキュリティよくなってきた話という発表をしました。 Androidのセキュリティに関する改善の歴史と、ユーザー補助サービスによるアプリ権限奪取のデモという内容でしたが、短い時間での発表だった…

TextAppearance のプレビュー画面を作る

AndroidのリソースXMLを読み書きできない人に TextAppearance の定義内容を共有するためには、わかりやすく定義内容を一覧できる仕組みが必要です。 できれば、以下のように実際のアプリ内の表示とあわせて見られるのが一番良さそうです。 このプレビュー画…

Androidソースコードレビューで指摘する事が多い項目まとめ2

去年Androidソースコードレビューで指摘する事が多い項目まとめという記事を書いた時はアプリ全体を一度に見るような機会が多かったため、内容も大きめのものばかり書いていましたが、最近はプルリクエスト単位でレビューする機会が増えたので細かい項目につ…

最近Android TVアプリの開発で困ったこと

雑にメモ Android TVを正確に判定するのが難しい Android DevelopersのAndroid TV実装ガイドにはTV端末をチェックするという項目があり、 UI_MODE_TYPE_TELEVISIONで判定すればいいよと書いてある。 しかし実際にはUI_MODE_TYPE_TELEVISIONなのにAndroid TV…

最近気になっているGoogle Play Servicesの機能

Google Play Services7.5、7.8で素敵な新機能がいっぱい追加されたけど全然追いつけていないのでメモだけ…。 Nearby Nearbyは近くにあるAndroid/iOS端末同士でやりとりすることができる機能です。 メールやSMS、QRコードなどを介することなく接続できるので…

Genymotionの有料アカウントについて

Genymotionについて Genymotionは高速なAndroidのエミュレータです。 基本的な機能についてはググればいっぱい出てくるので割愛します…。 有料アカウント GenymotionのHPに無料アカウントと有料アカウントで使える機能の違いは書いてあるのですが、具体的に…

端末情報を調べるときに見るページ

au auの開発者向けページは他キャリアの同様のページとくらべて非常にわかりやすい。 他がひどいのでわかりやすいというだけで高評価だ。 Android(TM) 技術情報 | 開発者向け技術情報 | au 端末スペックは細かく乗っていて一覧性が高い。 更新スピードも早く…

Android Develoeprsの歩き方

はじめに この記事はAndroid Developersを便利に使うための方法が書いてあります。 前提としてAndroid Developersのページ構成などをある程度理解している必要があるので、まずは下記記事を参考にAndroid Developersの構造を把握してください。 Android Deve…

Android Developersでよく読むページ

Android Developersを読むときの注意点 どのページにも言えることですが、一見目次のように見えてもページ階層と関係ないリンク集だったりすることがあります。 たとえばBest Practicesというページの「BLOG ARTICLES」は一見このカテゴリの子ページリンクに…

Androidでよく使うdp指定まとめ

dpとは dpの仕組みについては過去にまとめています。 いまさら聞けないdp入門 本記事ではレイアウトを組んだり画像を用意する際によく使う数字をいくつか紹介したいと思います。 レイアウトの場合はそのままdp指定できますが、画像はdpサイズを元に各dpi用の…

タブレットUIアンチパターン

はじめに Android Developersではいくつかのページに渡ってタブレット端末のUI設計について説明しています。 本記事ではそれらの説明を元に、タブレットでアプリを表示した際に問題となりやすいデザインアンチパターンについて説明します。 参考URL Supporti…

ActionBarタブ・ドロップダウンリストの置き換え方法まとめ

はじめに API level 21以降、NAVIGATION_MODE_LISTやNAVIGATION_MODE_TABSといったActionBarと連動したナビゲーション要素が非推奨となりました。 これらのUIの置き換え方法についてはAndroid Developersで該当定数のリファレンスに「Consider using other c…

2014発売Android端末のdp解像度まとめ

はじめに Android端末は機種数が多く、OSバージョンやハードウェアがそれぞれ異なるためにAndroidでアプリを作ることは大変だと言われています。 特にディスプレイについてはそれぞれが異なった画面サイズや解像度を持つため、Androidの画面設計は複雑だと思…

AppIndexingについて

AppIndexingとは AppIndexingとは、ウェブページURLやキーワードとアプリの特定画面へのディープリンクを紐付け、Google検索結果から直接アプリの特定画面を起動させるための仕組みです。 現在はウェブサイトにアプリ用ディープリンクを埋め込む方法(狭義のA…

Android 5.0 差分メモ

自分用あとで読むメモ Android 5.0 概要 Android Lollipop | Android Developers 新API 概要 Android 5.0 APIs | Android Developers API 差分 API Differences between 20 and 21 Support Library 変更点 Support Library | Android Developers Support Lib…

【Android】いまさら聞けないdp入門 という記事を更新しました。

Qiitaに書いていた【Android】いまさら聞けないdp入門 - Qiitaという記事を更新しました。 (この記事も元々は同じ内容を記載していましたが、両方メンテすると大変なのでQiitaへのリンクページにしました) さすがに公開から1年以上経つとAndroid Developers…

Androidアプリのタブレット対応レイアウトまとめ

はじめに タブレットとスマートフォンの最大の違いは画面の横幅です。 Androidアプリをタブレット対応させる際は、いかにして画面の横幅を埋めるかが重要になります。 この記事では余白を埋める様々なパターンについて解説しています。 Android Developersの…

Android UI/UX アンチパターン

参考資料 Android Developers Amazon.co.jp: Smashing Android UI レスポンシブUIとデザインパターン: Juhani Lehtimaki, 佐藤 伸哉, 株式会社クイープ: 本 画面全般 スプラッシュ画面 必要のないスプラッシュ画面の表示はやめましょう。 なぜダメか 多くの…

Androidソースコードレビューで指摘する事が多い項目まとめ

業務でソースコードレビューを行う機会が増えたので、複数回指摘した項目や気になった実装などをまとめてみました。 こういう観点をできる人と共有できるといいなあ…。 2014/09/29 23:00 一部修正しました。 業務上ソースコードレビューの名目で仕様・デザイ…

ListViewのpadding設定

ListViewにpaddingを設定する ListViewで子要素の配置を調整する場合、通常はandroid:paddingで描画領域を、android:dividerHeightで子要素同士の間隔を設定する。 この時、単純にandroid:paddingだけ指定すると以下のようにリストの上下端で子要素が途切れ…

3行未満のAndroid Tips集

記事にするまでもない3行未満で書けるレベルのTipsとリンク集。 常識レベルのものも含む。 URLのパスの結合にはUri.withAppendedPathを使う スラッシュの重複を省いてくれて便利。 http://developer.android.com/reference/android/net/Uri.html DBのColumns…

買ってよかったAndroid関連電子書籍まとめ

Androidの技術書、どうせ買うなら電子書籍がいいよね!と電子書籍をあちこちで買ったり買い直したりしてるので知見を共有します。 どこで買うべきか 電子書籍で技術書を購入する際、なるべく制限の少ないものを探すことが重要です。 何も考えずに買ってしま…

画面回転時のActionBarの挙動まとめ

はじめに ActionBarの一部の機能は、端末の画面の向きによって挙動が異なる場合があります。 この記事では特に画面回転時に大きく挙動が変わる部分についてまとめました。 MenuItemの表示数が変わる ActionBarに表示されるMenuItemの数は画面幅のdpによって…

SyncAdapterの実装メモ

SyncAdapterとは SyncAdapterとは、AccountManager上のアカウントとContentProviderを紐付けることにより、クラウド上のデータと端末のデータを同期させる仕組みです。 一般的な動作としては「ContentResolverにAccountManagerのアカウントとSyncAdapterを登…