- 1. Mockitoでのユニットテストに入門してみた
- 2. 【Android】Navigationを実装してみる
- 3. ハッカソンから始まってiOSアプリ、Androidアプリをリリースするまでの軌跡
- 4. adb関連のあれこれ(Mac)
- 5. ライフサイクル 呼び出されるタイミング早見表
- 6. 実機(Android端末)で実行する方法
- 7. 【Material Design】そういえばDynamic colorってなんだっけ?
- 8. NCMB Kotlin SDKを使ってTodoアプリを作る(その3 タスクデータの表示)
- 9. RemoteMediator + Paging3 + Room + ViewModel で既読機能、削除機能付きのRecyclerViewを作る。
- 10. NCMB Kotlin SDKを使ってTodoアプリを作る(その2 タスクデータの保存)
- 11. NCMB Kotlin SDKを使ってTodoアプリを作る(その1 アプリの仕様とNCMBの初期化)
- 12. NCMB Kotlin SDKを使って日報アプリを作る(その3 データの取得と一覧表示)
- 13. NCMB Kotlin SDKを使って日報アプリを作る(その2 ログインとデータの保存)
- 14. NCMB Kotlin SDKを使って日報アプリを作る(その1 アプリの仕様とNCMBの初期化)
- 15. unity Android でステータスバーの高さを取得する方法
- 16. NCMB Kotlin SDKを使ってカメラメモアプリを作る(その3 データとファイルの表示)
- 17. NCMB Kotlin SDKを使ってカメラメモアプリを作る(その2 ファイルアップロードとデータ保存)
- 18. NCMB Kotlin SDKを使ってカメラメモアプリを作る(その1 アプリの仕様とNCMBの初期化)
- 19. 【Android】サービスの概要とサンプルコード
- 20. Android6.0 ApacheHTTPClientからURLConnectionへの置き換え
Mockitoでのユニットテストに入門してみた
# Mockitoとは
Mockitoとは、Javaアプリケーション開発においてデファクトスタンダートになっているモックライブラリです。
ユニットテストを記述するする際、テスト対象が他のコンポーネントに依存している場合、その依存しているコンポーネントとそっくりな振る舞いをするテストダブル(影武者)を作成する必要があります。
自前でテストダブルを作成するのは大変ですが、Mockitoを使えば依存コンポーネントとテスト対象とのやりとりを簡単に実装することができます。
今回は、MockitoのKotlin向けラッパーアプリである [Mockito-Kotlin](https://github.com/mockito/mockito-kotlin) を使用していきます。# テストダブルについて
テストダブルの役割は以下の5つです。– スタブ
– モック
– スパイ
– フェイク
– ダミー今回は、特によく使われるスタブ・モック・スパイオブジェクトについて入門していきます。
スタブ: テスト対象に対して、事前定義した任意の値を与える
モック: テスト対象メソッド実行時に、テスト対象が
【Android】Navigationを実装してみる
なんか面白そうなやつがあったので試してみました。
備忘録的な感じです。
## Navigationを実装してみる
とりあえず適当な新規プロジェクトを作成してFragmentを追加しました。スタート画面レイアウト
“`xml:fragment_start.xml
ハッカソンから始まってiOSアプリ、Androidアプリをリリースするまでの軌跡 **@kenmaro**です。
普段は主に**秘密計算、準同型暗号などの記事について投稿しています**。
秘密計算に関連するまとめの記事に関しては以下をご覧ください。> – [秘密計算エンジニアを始めて2年半が経った。](https://qiita.com/kenmaro/items/48059dd60f79e80f5ef8)
> – [秘密計算エンジニアを始めて3年が経った。](https://qiita.com/kenmaro/items/a1d90a074d552b7bf886)## 忙しい人のために最初に宣伝
**この度我々が個人開発する「YorimichiApp」はAndroid版を正式リリースしました。**アンドロイドユーザの方は、ぜひこちらからアプリをダウンロードしてみてください。
https://play.google.com/store/apps/details?id=com.agrimetal.yorimichi2
また、iOSユーザの方でまだダウンロードしていない人は、ぜひこちらからどうぞ。
https://apps.apple.com/jp/
adb関連のあれこれ(Mac)
## 今回の内容
– adbとは?
– adbコマンドのファイルパスを通す
– adbコマンドでapkをインストールする
– AndroidデバイスでFirebaseDebugViewモードを有効にする方法## マシン環境
– マシン:M1 MacbookAir 2020
– OS:Mac OS Big Sur Ver.11.3.1
– シェル:zsh 5.8 (x86_64-apple-darwin20.0)## adbとは?
adbとは、「Android Debug Bridge」の略で、Android端末とやりとりするための多用途なコマンドである。アプリのインストールやアンインストール、クラッシュログの出力など、さまざまな操作が行える。### Android SDK locationを調べる
– Android Studioを起動しSDK Locationを調べる
– 大体、`/Users/ユーザ名/Library/Android/sdk`が初期設定から変更しない場合ある。## adbコマンドのファイルパスを通す
adbコマンドはsdkフォルダのplatform-
ライフサイクル 呼び出されるタイミング早見表
ライフサイクルのメソッドがそれぞれどのタイミングで呼ばれるかの早見表を自分のメモ用に作成しました
# ライフサイクル早見表
|メソッド名 |呼び出されるタイミングと説明|
|:-|:—|
|onCreate() |アクティビティの生成時。アクティビティの初期化は通常ここで行われる|
|onStart() |アクティビティが表示されるとき。複数回呼び出される可能性がある|
|onResume() |アクティビティがフォアグラウド(画面上で操作できる状態)になり、ユーザーの操作を受け付けるとき|
|onPause() |アクティビティがフォアグラウンドでなくなるとき|
|onStop() |アクティビティが非表示になったとき|
|onRestart() |バックグラウンドから、再びフォアグラウンドになる前。onStop()からアクティビティが再表示されるとき|
|onDestory()|アクティビティが破棄されるとき|# 最後に
こうして改めて見ると、ライフサイクルとアクティビティの関係が親密なのを再確認しました。
また、「android ライフサイクル」などで検索すると 画
実機(Android端末)で実行する方法
# 初め
端末 :OPPO Reno A
androidバージョン :9
こちらの端末を使って実機でのアプリ実行の流れを説明していきます
# 早速
①
設定→端末情報と進みビルド番号の項目を数回タップします
「デベロッパーになりました」とトーストが表示されるので、確認次第前の画面に戻ります
②
その他の設定→開発者オプション(①をやっていないと表示されていない可能性があります)と進みます
開発者オプションはオンオフを切り替えることが可能です
](https://m3.material.io/)のDynamic colorを読んで
個人的に思った事をまとめました。## Dynamic color とは?
>
> Dynamic colorは、Material Design 3(通称:M3)で定義されてれた新しい色
NCMB Kotlin SDKを使ってTodoアプリを作る(その3 タスクデータの表示)
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アプリを作ってみます。[前回はタスクデータの保存について解説しました](https://qiita.com/goofmint/items/92d1021dbebd7e7c1644)ので、今回は保存したデータの取得と表示、そしてデータ削除を解説します。
## 完成版のコード
作成したデモアプリのコードは[NCMBMania/Kotlin_Todo: Kotlin SDKを使ったTodoアプリです](https://github.com/NCMBMania/Kotlin_Todo)にアップロードしてあります。
## タスクデータの取得
データストアに保存したタス
RemoteMediator + Paging3 + Room + ViewModel で既読機能、削除機能付きのRecyclerViewを作る。
# RemoteMediator + Paging3 + Room + ViewModel で既読機能、削除機能付きのRecyclerViewを作る。
参考https://qiita.com/que9/items/59cc988bfd92d0acea07
https://qiita.com/snichi/items/822b1f015458c503be5a

図のように既読、削除機能付きのネットワークPagingを作ろうとしたとき、RemoteMediatorを使った網羅的な解説が見当たらなかったので、いろいろと探し回って得た知見を書いておこうと思います。
特に、日本語、javaの最近のandroid技術紹介ページが少なくなっているので参考いただければと思います。#### 1.RemoteMediatorの設定
基本は、上記`AP
NCMB Kotlin SDKを使ってTodoアプリを作る(その2 タスクデータの保存)
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の初期化について解説しました](https://qiita.com/goofmint/items/8b0b566ad213a6215d94)ので、今回はタスクデータの保存について解説します。
## 完成版のコード
作成したデモアプリのコードは[NCMBMania/Kotlin_Todo: Kotlin SDKを使ったTodoアプリです](https://github.com/NCMBMania/Kotlin_Todo)にアップロードしてあります。
## ナビゲーションの振り分け
今回は以下のようなナビゲーション
NCMB Kotlin SDKを使ってTodoアプリを作る(その1 アプリの仕様とNCMBの初期化)
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)にアップロードしてあります。
## ベースについて
今回はKotlin + Jetpack Composeの組み合わせになっています。プロジェクトを作る際には Empty Compose Activity を選択してください。
## Composeについて
NCMB Kotlin SDKを使って日報アプリを作る(その3 データの取得と一覧表示)
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を使って日報アプリを作ってみます。[前回はログインとデータの保存について解説しました](https://qiita.com/goofmint/items/ba8d8176b518af5273b1)ので、今回は保存したデータの取得と一覧表示について解説します。
## 完成版のコード
作成したデモアプリのコードは[NCMBMania/Kotlin_DailyReport](https://github.com/NCMBMania/Kotlin_DailyReport)にアップロードしてあります。
## 日報データの取得
日報データの表示は `ListScreen` にて行います
NCMB Kotlin SDKを使って日報アプリを作る(その2 ログインとデータの保存)
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を使って日報アプリを作ってみます。[前回は画面の仕様とSDKの初期化について解説しました](https://qiita.com/goofmint/items/5c0178e691dccdd42ade)ので、今回はログインとデータの保存について解説します。
## 完成版のコード
作成したデモアプリのコードは[NCMBMania/Kotlin_DailyReport](https://github.com/NCMBMania/Kotlin_DailyReport)にアップロードしてあります。
## ナビゲーションの振り分け
今回は認証前提とし、認証していない場合はLoginSc
NCMB Kotlin SDKを使って日報アプリを作る(その1 アプリの仕様とNCMBの初期化)
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を使って日報アプリを作ってみます。まず画面の仕様とSDKの初期化について解説します。
## 完成版のコード
作成したデモアプリのコードは[NCMBMania/Kotlin_DailyReport](https://github.com/NCMBMania/Kotlin_DailyReport)にアップロードしてあります。
## ベースについて
今回はKotlin + Jetpack Composeの組み合わせになっています。プロジェクトを作る際には Empty Compose Activity を選択してください。

unityでAndroidにビルドする際、コンテンツが隠れないようにするため、ステータスバー(通知とか充電の部分)の高さを取得したいことがあります。
明確な記事がなかったので、その方法を記載しておきます。# コード
“`.cs
#if !UNITY_EDITOR && UNITY_ANDROID
using (var unityPlayer = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”))
{
using (var activity = unityPlayer.GetStatic(“currentActivity”))
{
using (var
NCMB Kotlin SDKを使ってカメラメモアプリを作る(その3 データとファイルの表示)
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を使ってカメラメモアプリを作ってみます。[前回はデータを保存する処理について解説しました](https://qiita.com/goofmint/items/dc335c55e6dd5c981c9a)ので、今回はその保存したデータの表示について解説します。
## 完成版のコード
作成したデモアプリのコードは[NCMBMania/Kotlin_Camera_Memo: Kotlin SDKを使ったカメラメモアプリです](https://github.com/NCMBMania/Kotlin_Camera_Memo)にアップロードしてあります。
## 一覧画面について
ので、今回はデータを保存する処理について解説します。
## 完成版のコード
作成したデモアプリのコードは[NCMBMania/Kotlin_Camera_Memo: Kotlin SDKを使ったカメラメモアプリです](https://github.com/NCMBMania/Kotlin_Camera_Memo)にアップロードしてあります。
## ナビゲーションバーの読み込
NCMB Kotlin SDKを使ってカメラメモアプリを作る(その1 アプリの仕様とNCMBの初期化)
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を使ってカメラメモアプリを作ってみます。まず画面の仕様とSDKの初期化について解説します。
## 完成版のコード
作成したデモアプリのコードは[NCMBMania/Kotlin_Camera_Memo: Kotlin SDKを使ったカメラメモアプリです](https://github.com/NCMBMania/Kotlin_Camera_Memo)にアップロードしてあります。
## ベースについて
今回はKotlin + Jetpack Composeの組み合わせになっています。プロジェクトを作る際には Empty Compose Activity を選択してください。
【Android】サービスの概要とサンプルコード
今回はバックグラウンドで処理を実行できるサービスについての説明とサンプルコードをご紹介したいと思います。
## 環境
Android Studio:2020.3.1 Patch 4
kotlin:1.5.31
targetSdkVersion:31
minSdkVersion:27## サービスとは
サービスとは Activity が終了した状態でもバックグラウンドで処理を継続して実行することができるアプリコンポーネントです。
Activity と異なり UI(ユーザーインターフェース)は持ちません。
用途としてはバックグラウンドでのサーバーとの通信、ファイル入出力、音楽の再生などが挙げられます。## サービスの種類
サービスには次の3種類があります。#### バックグラウンドサービス
通常のサービスです。
Activityが終了した後も何らかの処理を継続的に行うことができます。
アプリが終了したときは処理を停止します。#### フォアグラウンドサービス
ユーザーが存在を認識できるサービスです。
Activity が終了した後だけでなくアプリが終了した後も動作し続けま
Android6.0 ApacheHTTPClientからURLConnectionへの置き換え
*自分が失敗したならあと10人は失敗しているだろう(ゴキブリ理論)*
タイトル対応中にmultipartで詰まった、ということで失敗備忘録です。
# multipartでテキストと画像データをPost
### 以下を参考に実装
https://qiita.com/informationsea/items/778d9525c3aaded73577
### 問題発生
サーバーへテキストと画像を送信できた。がしかし、テキスト内の日本語が文字化けしている。
1.日本語以外(英字/数字)は文字化けなし。
2.画像は壊れることなく送信できている。
### 原因
`DataOutputStream`への書き込みを直接`writeBytes`で実装しているため、
`AndroidOS`標準の文字コード(UTF-8以外のなにか(未調査))でエンコードされていた。
### 対応
`writeBytes`は使用せず、一度StringBuilderであつめてからByte変換するようにした。
“` java:RestUtility.java
// 以下内容は参考元より多少の改変をしています
final Str