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
必要なもの Android Studio 4.0 以降とその使用方法に関する知識。Android Studio に加え、SDK と Gradle も必ず最新版にしてください。 Android デバイスまたはエミュレータ。 この Codelab には、アプリを完成させるために必要なコードがすべて用意されています。 ここで、アーキテクチャ コンポーネントと、それらがどのように連携して機能するかを簡単に紹介します。なお、この Codelab で取り上げるのは、アーキテクチャ コンポーネントの一部(具体的には LiveData、ViewModel、Room)です。各コンポーネントについて詳しくは、アプリで使用する際に説明します。 LiveData: 監視可能なデータホルダー クラス。常に最新バージョンのデータを保持またはキャッシュに保存し、データが変更されたときにオブザーバーに通知します。Live
コードを書いて「コード整形+インポート最適化+ファイル保存」 ←この作業を1アクションで済ませたい。 やり方は2パターンある マクロを使う方法 プラグインを使う方法 マクロを使う方法 以下の動作をマクロとして記憶させて⌘S(もしくはctrl+s)に割り当てる。 - Code => Optimization Imports - Code => Reformat Code - File => Save All 以下の記事に詳しく紹介されている。 Android Studioでファイル保存時にコードを最適化したい - Qiita https://qiita.com/chocomelon/items/46810763a5be0a433158 マクロのメリット やる事がシンプル カスタマイズ可能 マクロの有効/無効が簡単、Android Studioを再起動せずに済む Android Studio起
One of the most important ways apps use Bluetooth beacons is to get a wake up when the beacon first comes into range. If your app is running when this happens, this is no problem. But what if you want your app to take action when a beacon appears, perhaps hours or days after the user last launched it? This has always been tricky on Android, because of the lack of operating system support for both
概要 本内容は、AndroidのJobSchedulerクラスをAndroid 8上で定周期で実行し、その挙動について確認した結果をまとめています。 今回は、アプリで歩数計のような機能を実現する必要があったため、その用途に適しているかどうかを検証することを目的に行いました。 JobSchedulerとは、Android 5.0 (API 21)で追加された、指定したスケジュールに従って処理をバックグラウンドで実行させる仕組みです。指定時間後に実行、指定間隔で実行といった動作が可能です(ここでは触れませんが、端末の状態や新しい画像・動画が追加されたタイミングをトリガーとして実行することもできるようです)。従来のバージョンでは、AlarmManagerなどが利用されていました。 Google I/O 2018において発表された「JetPack」において、Androidのバージョンに応じてそれら
iPhoneと比べて、アンドロイドでは自由にアプリをインストールできます。たとえGoogle Playのようなマーケットに登録していなくてもインストールは可能です。しかし、アプリを更新しても、自動的にアップデートすることはできません。 弊社では企業向けタブレットアプリ開発がメインなのですが、このようなアプリは不特定多数がダウンロード可能なGoolge Playに登録するわけにもいきません。 登録してもよい場合でも、ネットワークがインターネットに接続されていないVPNであったりしますので、アプリの更新はアプリで自力で行うことになります。 プライベート・アプリマーケット 企業向けということになると、端末が数百台なんということもありますし、また端末も全国の各地の支店に配置されていたりしますから、アプリのアップデートを行うのは容易ではありません。初期キッティングでさえ、非常にコストも時間もかかりま
Androidにはユーザー通知のためにToastが用意されています。 画像のように、画面中央下へ、テキストを表示して消える通知方法です。 「~を登録しました」 「~をダウンロードしました」 など簡単なお知らせに使えます。重要なメッセージについては、AlertDialogの方が向いていますが、とても使いやすいwidgetです。 import android.app.Activity; import android.os.Bundle; import android.widget.Toast; public class ToastDialogActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanc
最初に。より良い方法があったら教えてください。 この内容を書くきっかけとなったのは、Y.A.M.の雑記帳さんのSimpleDateFormat ではなく android.text.format.DateFormat を使おうという記事です。この記事ではandroid.text.format.DateFormatを用いて日付フォーマットを指定して使うように推奨しています。 この方法を使えば、確かに端末のロケールに応じた表示にはなります。 日付形式設定の存在 しかしAndroidには日付フォーマットを変更できる設定(「設定」→「日付と時刻」→「日付形式」)があります。通常はロケールにあわせて自動設定されるため、意識することはないと思いますが、日本などが用いている yyyy/MM/dd 形式だけでなく、アメリカ式の MM/dd/yyyy や欧州式の dd/MM/yyyy から設定することができる
2013/09/02版に「.gradle/」を追加。 iosched(2013)の.gitignoreを見たところ # gradle cacheとして除外されていたので。 (.gradle/配下のファイルの役割はよく分かっていない...) 僕の.gitignore(2013/09/03版) *.apk *.ap_ # files for the dex VM *.dex # Java class files *.class # generated files bin/ gen/ # Local configuration file (sdk path, etc) local.properties # Eclipse project files .classpath .project # Proguard folder generated by Eclipse # proguard/ # I
iPhoneのそれと比較して、よくかっこわるいと評価されてしまうAndroidですが、正しくは「標準UI同士で比べた際にイケてない」のが真実だと思っています。 今現実として、Androidアプリにイケてないものが多いのですが、そもそもデザインを考慮するプロセスが省略されてしまっていたり、時間(コスト)が無いとかそういうこともあったと思いますが、流石にこれだけメジャーなデバイスになってしまうとそれが許される時代は終わってしまいました。 ドットコム全盛期の様なGeocities+IBMホームページビルダーのデザインがはるか昔にキャハハされた様に、もうそろそろ標準UIで未カスタマイズのAndroidアプリもキャハハされる時代です。 そんな中、効率よくかっこいいUIを構築するために頭の片隅で把握しておくとちょっと幸せになれる、独断と偏見で捻りあげた10個のAndroidのUIルールを紹介します。
また唐突だがAndroidアプリ開発の記事を書く。 アプリのユーザビリティを考えると、マルチスレッド処理は必須だ。 Android SDKでマルチスレッド処理を書く場合、いろいろな方法がある。どんな方法があるかはググってもらった方が早いだろう。一応、一通り便利に処理するための枠組みは用意されている。まぁ、「スレッドの存在は意識してもらうけど管理はライブラリに任せてくれたまえ」くらいな感じ。いいところだと思う。 別スレッド処理が必要な典型例としては「バックグラウンドで重い処理」と「周期的な処理」が考えられる。 AndroidではUIコンポーネント(画面上のボタンなど)はメインスレッド(UIスレッド)からしかアクセスできないという仕様があるので、別スレッドからUIコンポーネントを操作するにはUIスレッドとスレッド間通信みたいなことをする必要が出てくる。例えば、「バックグラウンドで重いファイルを
Androidでの開発ではAndroid OSをある種のフレームワークと捉えてその作法に則ってうまく「使われる」プログラムを書かなくてはならない。なのでそのフレームワークがどういう仕組で、どういう流れで僕らの書いたコードを呼び出すのかということを理解することがよい設計に結びつく。と、大風呂敷を広げているが僕もさほどAndroidに精通していないのでこれは努力目標みたいなもんです。 大雑把に割愛して、今回のテーマに関係の深いところをピックアップする感じでいきますか。 テーマのAsyncTaskだけども、要は非同期処理をしたい時に使う。Javaで非同期処理といえばThreadなんだけどもAndroidでは一般にAsyncTaskを使う。AsyncTaskではUIスレッドを使った非同期処理を簡単に(?)実装できるという触れ込み。 UIスレッドとは? そこでまずUIスレッドとは何かを理解せねばなる
DropboxStore, share, and access files across devices
Nexus SがAPI Level 10の2.3.3にアップデートされたので、実機のNFC機能について調べてみたところ、いくつか落とし穴があったのでそれをメモとして記します。 ACTION_TAG_DISCOVERED は優先度が低く、届かない場合がある 公式のAPIリファレンス (NfcAdapter | Android Developers)に以下の記載があるように、先に ACTION_NDEF_DISCOVERED か ACTION_TECH_DISCOVERED のintentに反応するアプリが存在する場合には、ACTION_TAG_DISCOVERED のintentは発生しません。 public static final String ACTION_TAG_DISCOVERED Since: API Level 9 Intent to start an activity w
本記事はAndroid DevelopersのDesigning for Seamlessnessを意訳、加筆したものです。Androidアプリをシームレスに連携させるためのノウハウを紹介します。 特性を理解する アプリケーションが高速に動作し、レスポンスが良くても、アプリケーション遷移やダイアログ表示を乱用した無計画なUI、不用意なデータの喪失、意図しないタイミングでの操作妨害など知らず知らずのうちにUXの良くない設計になっているかもしれません。これらの問題はどのように避ければ良いでしょう? アプリケーションが動作するコンテキスト Androidフレームワークの特性(アプリケーションへどんな影響を与えるか) を理解することが開発の手助けになります。 ユーザ操作を妨げない ユーザ操作のシームレス性で問題になるケースとしてよくあるのが、他のアクティブなアプリケーションを無視して、自分のダイア
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く