- 1. NCMBのKotlin SDKを使ってTodoアプリを作ろう
- 2. ViewBinderの使い方(初心者向け)
- 3. Android13写真選択ツールの実装方法
- 4. 【Android】覚えておくと便利なExtension:Part2
- 5. 余ったスマートフォンをIoTデバイスとして活用してみた
- 6. Android Jetpack(Room + Compose)でTodoアプリ作ろう【前編】
- 7. flutter doctor コマンド時の Android toolchain に関するエラー
- 8. 【Kotlin】Viewを長押し時、クリックイベントをリピートする処理を追加する
- 9. Androidアプリ(NDK)開発で時々logcat出力されない
- 10. 久々にAndroid開発する人のlinter導入ログ
- 11. Google I/O 2022で驚いたところ
- 12. androidアプリ インターバルタイマーの開発
- 13. 【Android】Variable is accessed from within inner class, needs to be final or effectively final
- 14. xmlのshapeタグって意外と自由度が高いっていう話 part3
- 15. 【Android】SharedPreferences を使ってみる
- 16. 【Flutter】Androidの感覚で実装してiOSで起こした不具合
- 17. Deno/TypeScript入門〜スタブ・サーバーを作ってみる編〜
- 18. Androidアプリのメモリについて
- 19. 【Android】altbeacon ライブラリを使ってフォアグラウンドで Beacon の領域監視を行う
- 20. What’s new in Android (2022) のセッションメモ
NCMBのKotlin SDKを使ってTodoアプリを作ろう
NCMBでは公式SDKとしてSwift/Objective-C/Kotlin/Java/Unity/JavaScript SDKを用意しています。また、それ以外にもコミュニティSDKとして、非公式ながらFlutter/React Native/Google Apps Script/C#/Ruby/Python/PHPなど幅広い言語向けにSDKが開発されています。
今回は公式SDKの一つ、Kotlin SDKを使ってTodoアプリを作ってみます。まず画面の仕様とSDKの初期化について解説します。
## 完成版のコード
作成したデモアプリのコードは[NCMBMania/Kotlin_Todo: Kotlin SDKを使ったTodoアプリです](https://github.com/NCMBMania/Kotlin_Todo)にアップロードしてあります。
## ベースアプリのダウンロードまで
Android13写真選択ツールの実装方法
今回はAndroid13にて追加予定となっている写真選択ツールを使ってみました。
# リファレンス
https://developer.android.com/about/versions/13/features/photopicker?hl=ja
# 実装方法
“`MainActivity.kt
binding.button.setOnClickListener {
val intent = Intent(MediaStore.ACTION_PICK_IMAGES).apply {
type = “image/*”
}
startForResult.launch(intent)
}private val startForResult =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult? ->
if (result?.resultCode == Activi
【Android】覚えておくと便利なExtension:Part2
# はじめに
何かしらの機能で必ず使用するExtensionですが、毎度実装している便利なExtensionを備忘録的に残しておこうと思います。# その1
“`
fun Context.showToast(message: String) {
mainThread { Toast.makeText(this, message, Toast.LENGTH_SHORT).show()}}“`
トーストを表示する拡張関数です。
上記はシンプルなデフォルトのトーストを表示する処理ですが、SHORTとLONGで拡張関数分けても良いですね# その2
“`
fun Int.dpToPx(context: Context): Float {
return this * context.resources.displayMetrics.density
}fun Int.pxToDp(context: Context): Float {
return this / context.resources.displayMetrics.density
}
“`
dp、
余ったスマートフォンをIoTデバイスとして活用してみた
# 概要
AI Dynamics Japanは、エッジデバイス向けアプリ開発に注力するスタートアップです。AI Dynamics Japanは、2022年4月にCYBERDYNE Omni Networks社「Acty-G3+」向けに __「滞在人数カウント」__ をリリースしました。この「滞在人数カウント」、アンドロイドで動くアプリで、ファイル形式も.apk 形式です。
機種変更で使わなくなったスマホのIoTデバイス化を目指し、__「滞在人数カウント」__ をアンドロイドスマホにインストールしてみました。
# 前提
### システム構成
__「滞在人数カウント」__ は、カメラ画像中の人物数をクラウドにアップロードするアプリです。会議室、フードコートなど人が集まる場所での混雑度推定に用いられることが多く、2022年5月時点、[SORACOM社のS+ Camera向け](https://aidynamics.jp/services/package20/people_counter)、アンドロイド端末向けの2種類があります。今回は、①Oppo R15 NEOに 「滞在人
Android Jetpack(Room + Compose)でTodoアプリ作ろう【前編】
みなさんこんにちは!この記事ではAndroid Jetpackに含まれるRoomとComposeを使ってTodoアプリを作りたいと思います。
【前編】(この記事)ではComposeでリスト表示をする部分を実装して、
【後編】ではRoomを使ってデータベースにデータを保存する部分を実装したいと思います。(作成中)今回作成したTodoアプリのソースコードはこちらにあります。(GitHub)
https://github.com/masashihamaguchi/TodoApp-Jetpack
**完成イメージ**
# Android Jetpackとは?
![Jetpack.png](https://qiita-image-store.s3.ap-
flutter doctor コマンド時の Android toolchain に関するエラー
-環境
Flutter 3.0.0
Android Studio Chipmunk | 2021.2.1-エラー
[!] Android toolchain – develop for Android devices (Android SDK version 32.1.0-rc1)
X cmdline-tools component is missing
Run `path/to/sdkmanager –install “cmdline-tools;latest”`
See https://developer.android.com/studio/command-line for more details.
X Android license status unknown.
Run `flutter doctor –android-licenses` to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/window
【Kotlin】Viewを長押し時、クリックイベントをリピートする処理を追加する
Viewを長押しした時にクリックイベントをリピートする処理を追加したく、
以下のJavaコードをKotlinに変換したコードを作成したため、備忘録として残しておきます。https://gist.github.com/shisashi/1718672
# 環境
– Android 10
– Android Studio 4.1.3# コード
“` LongClickRepeatAdapter.Kt
import android.annotation.SuppressLint
import android.os.Handler
import android.os.Looper
import android.view.MotionEvent
import android.view.Viewclass LongClickRepeatAdapter {
/**
* 長押し時のリピート処理間隔
*/
companion object {
private const val REPEAT_INTERVAL: Long = 1
Androidアプリ(NDK)開発で時々logcat出力されない
### 問題
AndroidのNDKを使った開発で、C++コードでベタにlogcat出力すると、全く出力されなかったり、少しだけ出力されたりする。### 対策
一旦適当な長さでキャッシュしてから書き出すように変更して、usleepでちょっと待つようにしたら少し遅くなるけどlogcat出力されるようになった。リリースビルドが必要。いつもこれでうまくいくのかは不明。“`C++: C++(NDK)のlogcat実装例
#include
#include#define dprintf(…) { \
__android_log_print(ANDROID_LOG_DEBUG, “MyNDK:”, __VA_ARGS__);\
usleep(5000);\
}
….
void printTbl(std::vector&tbl){
float numPrintUnit = 20.0f; // キャッシュするサイズ(usleepとのバランス)
int numTbl = tbl
久々にAndroid開発する人のlinter導入ログ
# はじめに
現在転職活動中だが、とある会社の技術試験中に自分のAndroid開発の知識が古すぎることを痛感した。
以前から考えているアイディアでアプリを作ることにより、
現代のAndroid開発の知識を習得し直すことにした。その時の学びをメモしていく。
## 筆者の知識レベル
自分のAndroidの知識レベルはおおよそ7年前、OSのバージョンだと4が出るかどうかレベルのものだ。
Android StudioやKotlinは普及する前だし、Gradleも触ったことがなかった。ライフサイクルやcontextの知識はそれなりにあるぐらい。
## 環境
IDEはAndroid Studio Arctic Fox | 2020.3.1 Patch 1、OSはWindows10
さっくりいうなら2022年4月の最新環境である。# Linter導入
今の自分がAndroidアプリを作るとして、まず手を付けること…
それはコードやプロジェクトの構成に誤りが生じる可能性を十分に下げること。
つまり、linterの導入だ。Android+Kotlinの場合、手軽に使えるものは
Google I/O 2022で驚いたところ
個人的に驚いたところを**太字**にしておきます。
AndroidのエンジニアなのでAndroidに関するものが多めです。なにか大きな間違などがあればご指摘お願いします。修正いたします。 :pray:
またまだ見ていきますが、一旦、`Keynote`,`Developer Keynote`, `What’s new in Android`, `What’s new in Jetpack`, `What’s new in Development tool`を見たメモを書いています。
まだまだ、ここに追加していく予定です。
# セッション: Keynote
翻訳に24の言語が追加
Google Mapの3Dマッピング。 immersive View。めっちゃきれい
androidアプリ インターバルタイマーの開発
# CoCoIntervalTimer紹介ページ
筋トレなどの時に使用できるインターバルタイマーアプリの紹介です。## 概要
たとえば、第1種目30秒、第2種目50秒、休憩20秒 以上の流れを×3セット!などの
プランを作成し、タイマーとして動作させます。## 用語解説
-プラン
第1種目30秒、第2種目50秒、休憩20秒 以上の流れを×3セット!などのトレーニングメニュー全体を1つのプランとします。-ステップ
プランを構成する要素です。
第1種目30秒→第1ステップ 第2種目50秒→第2ステップ-シンプルプラン
ワーク部分と休憩部分を何セット行うかのシンプルなプランです。(30秒運動、10秒休憩を3セットなど)
シンプルプランはワーク秒数、休憩秒数、セット数を指定することで作成できます。-カスタムプラン
複数ステップをカスタムしてプランを作成できます。
カスタムプランでは自由にステップを追加してより自由なプランを作成できます。
第1種目30秒、第2種目50秒、休憩20秒 以上の流れを×3セット!などはカスタムプランです。## メイン画面
アプリ起動時に起動
【Android】Variable is accessed from within inner class, needs to be final or effectively final
自作の Android アプリで、画面上のボタンを押したら〇〇変数をOFFにする、というコードを作っていたら Variable 〇〇 is accessed from within inner class, needs to be final or effectively final というエラーが出た。
ONにしたい変数をグローバルにする、という簡単な対策でしたが、Android Studio で確認しました。# 参考
[Variable is accessed from within inner class, needs to be final or effectively final – stack overflow](https://stackoverflow.com/questions/14425826/variable-is-accessed-within-inner-class-needs-to-be-declared-final#:~:text=You%20can%20declare%20the%20variable,inner%20class%20must%2
xmlのshapeタグって意外と自由度が高いっていう話 part3
# 初めに
今回は、shapeタグの紹介記事第三弾になります
3個目はViewに一気対してこだわりを持たせられる`gradient`です。## 本文
こちらは名前の通りグラデーションをつけることができ、色は`startColor`、`centerColor`、`endColor`の三種類を指定することがきます。
・`startColor`は***スタート位置の色***
・`centerColor`は***中間地点の色***
・`endColor`は***最終地点の色***を指定することができます。
色以外の要素となると
・`type`
・`gradientRadius `
・`centerX`
・`centerY`
・`angle`
の5点があります`type`とはグラデーションの形を指定することができ、
・`linear `
・`radial `
・`sweep`
の3種類があり、`radial`は***放射状***に、`sweep`は***円形***にグラデーションをかけることができ、`type`を指定しない場合は`linear`になり***直線状***のグラデーションがか
【Android】SharedPreferences を使ってみる
## 概要
Android 端末の内部ストレージに Key-Value 形式でデータを保存することができる SharedPreferencesAPI を使う機会がありましたので、その使い方についてご紹介したいと思います。SharedPreferencesAPI はあらかじめ用意されている Android のライブラリで、端末のアプリ固有の領域にデータを保存したりそれを参照したりすることができます。
## 環境
Android Studio:2021.1.1 Patch 3
kotlin:1.6.20
targetSdkVersion:32
minSdkVersion:27## 内容
### 準備
SharedPreferencesAPI を使って内部ストレージにデータを保存するには、まず “`getSharedPreferences()“` メソッドを呼び出してデータを書き込むための xml ファイルを作成します。
すでに作成済みの場合は指定したファイルに対してデータを書き込むことになります。“` MainActivity.kt
val sharedPref = g
【Flutter】Androidの感覚で実装してiOSで起こした不具合
# 不具合発覚
iOSの端末で名前が入力できないとの問い合わせから判明しました。# 調査
以前、showCupertinoModalPopup を使った際に、Focus と Cursor の挙動がおかしくなったことがあったので似たような問題かな?と思ったが違いました。連絡をくれた方とやり取りすると、日本語が入力できないとのことだったのでキーボードの設定周りを中心に調査するようにしました。
# 原因
以下の条件で再現することがわかりました。
– キーボードを絵文字と Gboard のような他社製キーボードのみにしている
– TextField の `inputType` に `TextInputType.name` を設定している`TextInputType.name` を指定すると、iOS では `keyboardType` に `namePhonePad` が設定されるのですが、他社製キーボードのみにしていると、該当のキーボードがないため日本語を入力するキーボードが選択できないため入力できなくなってしまっていました。
# 対応
`inputType` を `Te
Deno/TypeScript入門〜スタブ・サーバーを作ってみる編〜
# まえがき
※この記事は、以下の後続記事です。
Deno/TypeScriptの概要については以下の記事に記載しています。https://qiita.com/y-some/items/ca6404b7024d54b1ff75
—
最近私はツールを開発する環境として「[Deno](https://deno.land/)」が気に入っています。
シンプルで、軽くて、ランタイムAPIや標準ライブラリが充実していて、開発体験が良いと感じています。
私のところではDenoを本番で採用しようとすると諸々ハードルがありますが、ツールの開発であれば選択肢として大いにアリです。iOS/Androidアプリケーションや、シングルページ・Webアプリケーションを開発する際、よく使うツールの一例として「スタブ・サーバー」があります。
特に、バックエンド側(Web API)とフロントエンド側が別チームだったりする場合に、
**「バックエンド側の実装が完了するまでの間、フロントエンド側の実装が停滞してしまう」**
といった状況が発生することがあります。そのような場合、**ダミーのレスポンス
Androidアプリのメモリについて
# はじめに
メモリリークのエラー発生時に、使用可能なメモリとメモリ使用量について調査したのでまとめました。# 開発環境
PC:MacBook Pro
OS:macOS BigSur
Android Studio:Arctic Fox 2021.1.1# メモリ調査方法
`ActivityManager.MemoryInfo()`のメソッドを使用してメモリ情報を取得します。“`kotlin:MainActivity.kt
// メモリ情報を取得
val activityManager = getSystemService(ACTIVITY_SERVICE) as ActivityManager
val memoryInfo = ActivityManager.MemoryInfo()
activityManager.getMemoryInfo(memoryInfo)// 利用可能なメモリーサイズ
Log.d(“メモリ情報”, “availMem:” + memoryInfo
【Android】altbeacon ライブラリを使ってフォアグラウンドで Beacon の領域監視を行う
## 概要
今回は前に書いた記事の続きで、フォアグラウンドで Beacon を検知してみたいと思います。
フォアグラウンドで検知処理を行うことで、アプリをキルした状態でも Beacon の領域監視を行うことができます。
ライブラリは altbeacon という Bluetooth ライブラリを使用します。altbeacon ライブラリを使った Beacon 検知についての詳しい説明については前回の記事で解説させていただきましたので、使い方をご存知でない方は[こちらの記事](https://qiita.com/kenmaeda51415/items/ac5a2d5a15783bbe9192)を参考にしていただけますと幸いです。
## 環境
Android Studio:2021.1.1 Patch 3
kotlin:1.6.20
targetSdkVersion:32
minSdkVersion:27## 準備
まずは実装の準備として以下のライブラリを gradle(appレベル) に追加します。“` build.gradle
implementation ‘org.al
What’s new in Android (2022) のセッションメモ
のセッションを見たメモです。
What’s new in Android では今年の Android に関するセッション内容の概要を紹介する動画になっています。
なのでこのセッション動画を見ることでざっくりとした Android に関する新情報をキャッチアップができるようになっています。
詳細は記載しているセッション詳細のリンクから動画を見てみてください。#### 関連リンク
– https://io.google/2022/
– [13 Things to know for Android developers at Google I/O!](https://android-developers.googleblog.com/2022/05/13-things-to-know-for-android-developers-at-google-io.html)## Jetpack ライブラリの話
– バックポートや新しい機能のライブラリで120を超えている
– 新しく追加された JankStats ライブラ