Android関連のことを調べてみた2022年02月25日

Android関連のことを調べてみた2022年02月25日
目次

2022年のiOS/Androidの技術をざっくりキャッチアップ

ネイティブアプリにも宣言型UIとかなんかいろいろ入ってきたので、「いい加減そろそろ覚えないとな~~」ってなってる人は少なくないと思ってるんですけれど、一足先に一通り触ったのでどんな感じで学べばいいのかなという参考になればという感じの記事です。

# 宣言型UI

WebにjQueryがもたらされたとき、だれでも簡単に直接DOMを触ってViewを弄れるようになった結果、アプリの大規模化・保守の長期化に伴って手に負えなくなったので、それを解決するためにReact辺りが宣言型UIの思想を生み出した…というざっくりした認識を持ってるんですけれど、合ってるかは知りません。

とまれ、ネイティブアプリにも数周遅れではありますが宣言型UIの流れがきています。

## SwiftUI

SwiftUIの現在の最新バージョンは3です。

どんどん便利になるのはいいことなんですけれど、サポートするiOSのバージョン指定によっては使えない機能とかがあります…。

これは公式のコードなのですけれど、

“`swift
struct Content: View {
@State var model =

元記事を表示

【Flutter】api通信がAndroidでのみうまくいかない件

# 何があったのか?
GitHubApiを使用した通信処理がAndroidでのみ失敗して詰まったので、備忘録を残しておく。

# 解決法
###AndroidManifest.xmlにネットワーク権限を追加
以下のようにandroid / src / main /AndroidManifest.xmlに\の記述を加えるとネットワーク権限が加えられ、api通信もできるようになります。

“`




“`

# 参考
https://stackoverflow.com/questions/64120563/flutter-android-http-get-never-returns-in-release-mode

元記事を表示

Nature Remo Cloud API + Lambdaで温度を記録して折れ線グラフを表示する自分ち専用のAndroidアプリを作った

Nature Remo Cloud API + Lambdaで温度を記録して折れ線グラフを表示する自分ち専用のAndroidアプリを作りました。
# 経緯

– 我が家ではNature Remoというスマートリモコンを使っており、Alexaやスマホアプリ経由でいろんな家電を操作できるようにしている
– そのNature Remoでは[Nature Remo Cloud API](https://swagger.nature.global/)というものが提供されており、HTTPで簡単に情報が取れるらしい
– 最近エアコン暖房がついててもたいしてあったかくない気がする
– Nature Remoに搭載されている温度センサーの値と、エアコンの稼働状況をAPIから定期的に取得し、保存して見える化すればエアコンが本当に調子が悪いのかわかるのでは?
– 単純に室温の変化が見えたら面白そう
– [気象庁ホームページのリニューアルでアメダスのデータも簡単に取れるようになったらしい](https://mindtech.jp/?p=1754)のでついでに外気温も取得してみよう

# つくった

元記事を表示

ネイティブアプリの初回審査通過に向けて気をつけたポイント(2022年2月版)

# 0. 概要

この度、**新規の**ネイティブアプリをiOS/Androidの両プラットフォームにて**スケジュール通り**にリリース可能な(Apple/Googleによる審査が通過した)状態にすることができました!

※審査時間がとても早かった(通常、初回は2週間ほどを見るのが良いと言われていますが、提出から通過までなんと1営業日…!)というラッキーはありましたが、間違いなく開発チームの努力の成果だと思っています!

チームの中でも私個人は今回、技術的な側面ではなく、アプリが審査基準を満たせているか?審査提出に必要なタスクは何か?といった側面において、リスク回避に努めました。スケジュール通りに何かを成し遂げる際は「不確定要素」をどれだけ減らしていくかといったことが重要だと思いますが、アプリのサービスリリースにおいて最大の不確定要素は「審査でのリジェクト」になるかと思います。今回得た知見で、どなたかの「不確定要素」を減らす手助けが出来れば…!という気持ちです。

# 1. 公式のガイドラインを読む

兎にも角にもまずは公式のガイドラインを読みました。入り口が分かりづらかったり、各所

元記事を表示

【AndroidStudio】xmlにあるandroidとかtoolsとかappの違いって何?

# xmlにあるandroidとかtoolsとかappの違い
xmlには以下の画像のようにandroidとかappとかtoolsという名前空間?が存在します。
これらは何を表していて、お互いどのように違うのでしょうか。

# 調べる
調べてみるとtoolsに関しては公式ドキュメントで以下の通りに説明されていました。
>Android Studio では tools 名前空間でさまざまな XML 属性がサポートされており、これを使用して設計時の機能(フラグメントに表示するレイア

元記事を表示

Android12のバックグランドからのフォアグランドサービス起動制限が起きそうで起きない件を調べた話

# 概要
targetSdkversionを31に上げて影響を調査していたときの話です。バックグランドからのフォアグランドサービス起動制限の影響を食らうだろうと思っていたのにテストしてみたら全然クラッシュしませんでした。理由がわからないと不安なので、時間の許す範囲で調べてみました。

# 条件・環境
端末:Pixel6
OS:Android12

# 経緯
ドキュメントを見るとバックグランドからフォアグランドサービス起動時はForegroundServiceStartNotAllowedExceptionがスローされるとあります。

https://developer.android.com/guide/components/foreground-services#background-start-restrictions

しかし、バックグランドからのフォアグランドサービス起動をテストしても狙ったところでこの例外は発生せず、意図しないところで発生しました。

# 調査方法
Androidのソースコードを見ていると起動中のサービスについての情報がServiceRecordなるものに書か

元記事を表示

【Appium】自動テストがしたいのにAndroid Chromeのようこそ画面が邪魔

## 事の発端

業務でウェブアプリの自動テストの需要が高まってきたので、Appiumの環境構築をして動作確認をしていた時の話です。

なんとかPC版Chromeで動作するようになったので、じゃあAndroid実機でも!と思い実行。

Welcome

**これじゃテスト動かんやん!なんでや!!**

でも新品の端末買ってきた、みたいな新鮮さだけはある。

【環境】
– Mac OS 12.2.1
– Android 12(実機Pixel 3a)
– Appium 1.22.2(CUI)
– Python3.6

## 解決法

capabilitiesに`appPackage`と`appActivity`ではなく、`browserName`を使用する。

“`python
driver = webdriver

元記事を表示

build.gradleをbuild.gradle.ktsへ移行したい!

[ビルド構成を Groovy から KTS に移行する](https://developer.android.com/studio/build/migrate-to-kts?hl=ja)のドキュメントによると、
> Kotlin の方が可読性が高く、コンパイル時のチェックと IDE サポートが優れているため、今後、Gradle スクリプトの記述には Groovy よりも KTS が優先されます。

とあります。今後はGroovyのビルドスクリプトよりもKotlinビルドスクリプトの方が主流になっていくものと思われます。

とはいえ、未だにAndroid Studioで新規作成したプロジェクトはbuild.gradleで作られるし、Groovyのスクリプトで運用している開発環境はたくさんあると思います。
Android StudioではJavaからKotlinへは自動変換できますが、GroovyのビルドスクリプトをKotlinに変換する機能はまだありません。そのため、移行は手動で行う必要があります。

移行方法は上記リンク先にも記載がありますが、ビルドスクリプトの一部分しか紹介されていな

元記事を表示

Play console上のFlutterアプリ更新手順メモ

#バージョンを更新
pubspec.yaml内のバージョンを更新する

“`
version: 1.0.0+3
“`

#Appbundleファイルを作成する
“`
$ flutter build appbundle
“`

下記フォルダにaabファイルが作成される
build\app\outputs\bundle\release\app-release.aab

#Play Consoleにファイルアップロード
製品版 → 新しいリリースを作成 → AppBundle内にアップロード
リリースの詳細に修正箇所などを記載
保存 → リリースのレビューを確認

確認して公開で完了

元記事を表示

【Android/iOS】Webブラウザのアドレスバーを非表示にする方法

#はじめに
Android/iOSのWebブラウザのアドレスバーを非表示にする方法です。
ネットで調べて出てくることには出てくるのですが、なかなかたどり着かなかったのでQiitaに投稿しておきます。

#やりたいこと
据え置きのタブレット端末でWebアプリを動作させるときに、アドレスバーを非表示にしたい。

調べたところ、Webブラウザの設定でフルスクリーン(アドレスバー非表示)にするのは無理そう。
(フィッシングサイトによる悪用などを考慮している?)

**Webブラウザの設定変更以外の方法でアドレスバーを非表示にしたい。**←今回やりたいこと

#結論
以下のサイトを参考にしました。
[[HTML5] フルスクリーンの開始と解除](https://blog.katsubemakito.net/html5/fullscreen)

対象ページのheadタグ内に以下のmetaタグを記述します。

“`html

OTHERカテゴリの最新記事