Android関連のことを調べてみた2020年05月18日

Android関連のことを調べてみた2020年05月18日
目次

【Flutter】超オススメの「state_notifier + freezed」を使って、カウンターアプリをつくるよ

## はじめに

Flutter界隈では、**「state_notifier + freezed」を使って開発するのがアツい!** と、評判です。

「state_notifier」は、providerと組み合わせて使い、Widgetから**「状態」と「ロジック」を簡単に分離し&通知する**ことができるライブラリです。**Widgetの状態管理を楽にしてくれたり、無駄なリビルドを抑制したりしてくれます。**

「freezed」は、**Stateを「データを保持するだけのクラス」**として、 **変更不可(イミュータブル/freezed)なクラス**にすることができます。

> Flutter state_notifierいい感じなので使ったほうが良いですよ
https://qiita.com/_masaokb/items/fe77495db0aeba226d2a

**有名Flutterエンジニアの方々もオススメ**されているので、**「流行ってるみたいだし、めっちゃよさげだし、私も乗り遅れないようにしないと」**と思いました。

【Android Studio】 SQLiteを使いやすくするクラス テーブルの作成・削除 

# 概要
Android Studioには、データベースを用いたアプリケーションを作りやすくするために「SQLiteOpenHelper」クラスや「SQLiteDatabase」クラスなどのクラスが用意されています。
これらのクラスはとても便利で使いやすいのですが、

・テーブルを作る際に既に同じ名前のテーブルが存在しないかチェックする必要がある。
・SQLをコード中に直接書く必要がある。
・SQLはStringオブジェクトとして書く必要があり、間違ってコーディングしたときに気づきにくい。
・Stringオブジェクトとして書いたSQLが邪魔でちょっと見ずらい。

という点で不便だなと思うことがありました。
中でも、私はもともとwebアプリケーションを作っていたので生のSQLがコードにあると不安になってしまうというきらいがあります。
また、何がしているのか直感的に分かるコードが好きでもあります。
ということで今回は、関数チックにSQLを使えてメインのプログラムを見たときに何をしているのか分かりやすいものであることを目標にして「SQLiteDatabase」クラスをサポートするクラスを作

AndroidStudioで辞書登録を共有する

# はじめに
プロジェクト特有の言葉(日本語やビジネス用語)を使うときにAndroidStudioでは
丁寧に警告を出してくれるんですが、ミスリードなので警告を回避して、
チームで共有する方法を整理しました。

ちなみに、[開発プロジェクトでスペルチェック用辞書を共有する方法](https://qiita.com/beyondseeker/items/7e63e6a22d6ba3f9f2bd#fn1) が
すごく丁寧に書いてくれています。この記事は主に自身の備忘録にあたります…

# やったこと

1 typo対象外にしたいワードをAndroidStudioで辞書登録する
スクリーンショット 2020-05-17 19.37.56.png

2 辞書ファイルはOSユーザー名で作成されるため、プロジェクトで共有

元記事を表示

AndroidのTwilio VideoViewの形をCircleにする

# はじめに
あるプロジェクトで[TwilioのVideoライブラリ](https://jp.twilio.com/docs/video/android)を使ったのですがTwilioのVideoViewはデフォルトでは、四角形でカメラ映像がレンダリングされます。
これをよくある丸形にするのが意外と苦戦したのでメモしておきます。

やりたいのはこういうやつ↓
スクリーンショット 2020-05-17 14.34.47.png

※ 今回の方法は下記のやり方を参考にしました。
https://github.com/twilio/video-quickstart-android/issues/291

# やり方

– 親のカスタムレイアウトを作成

“`kotlin:CircleFrameLayout.kt
pac

元記事を表示

FlutterアプリをGWの5日間でAppStoreにリリースした時のこと

# はじめに

こんにちは。
Android アプリエンジニアの [trashfeed](http://www.trashfeed.net/) と言います。

この記事は、外出自粛の「STAY HOME」となったGW中に、庭にテントを張りながら1人開発合宿し、`Flutterアプリ開発 〜 AppStoreリリース完了` までの5日間の記録になります。

## やったこと

– Flutter をキャッチアップし、GW中にアプリをリリースした
– リリースしたアプリ
– [勉強・暗記にクリップノート](https://apps.apple.com/jp/app/%E5%8B%89%E5%BC%B7-%E6%9A%97%E8%A8%98%E3%81%AB%E3%82%AF%E3%83%AA%E3%83%83%E3%83%97%E3%83%8E%E3%83%BC%E3%83%88/id1511456588?l=ja&ls=1)
![iphone11.004.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/

元記事を表示

ExoPlayer Okhttp Extentionで ExoPlayerのネットワークをカスタマイズする

# ExoPlayer Okhttp Extentionとは
[ExoPlayer](https://github.com/google/ExoPlayer)はAndroidで動画・音声を再生するフレームワークです。
ExoPlayerではたくさんの拡張ライブラリが用意されており、その中のひとつに[Okhttp Extention](https://github.com/google/ExoPlayer/tree/release-v2/extensions/okhttp)があります。
Okhttp Extentionを使用すれば、[OkHttp](https://square.github.io/okhttp/)を使ってExoPlayerのネットワークをカスタマイズ出来ます。

具体的には、**ExoPlayerが受け取るレスポンスデータを書きかえたり、ステータスコードを書き換えたり… Okhttpで出来ること全てが可能です**。
ただ、**Httpタイムアウト時間・リクエストヘッダのカスタマイズ・ネットワークイベントなどはコアライブラリのみで対応可能**です。

# 導入
gra

元記事を表示

モバイルアプリに対する難読化/堅牢化

#クラッキングの現状
近年様々の分野においてアプリのクラッキング被害が多く報告されています。これは、初心者にも簡単に使えるクラッキングツールが、インターネットで入手可能となり、攻撃者の数を急増したためです。
体表的になクラッキング被害は以下のような例を挙げられます。
– ゲームチート
 - クラッキングにより不正ツールが作られ、課金回避や不正操作が横行します。
– 製造産業機器・ロボットのクローン
 - 組込アプリのアルゴリズムを解析され、クローン製品を作られます。
– 金融・フィンテック 電子決済のなりますし
 - アプリの改ざんにより、本人の認証の不正回避や、なりますしなどの原因となります。
– O2O 推薦者への報奨金のハッキング
 - O2Oアプリの特性上、機密にすべきユーザの個人情報をアプリ内で扱うことがあります。ハッカーは、アプ リケーションの動作を理解し、簡単な操作でエミュレータから新しいユーザとして認識される方式を利用し、不当な利益を請求してきました。
#難読化/堅牢化とは

- 難読化
 - プログラムにおいて、その内部的な動作の手続き内容・構造・データなどを人間が

元記事を表示

AndroidとSesameとNFCで開けゴマ 最終版

##動作結果
![jobi9-m8t0q.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/602722/79af172f-b2a5-7967-06cd-f6670d97e5de.gif)

##変更点
・Sesameの操作関係をクラス化
  インスタンスで2台操作できそうに(未実験
  10秒or1分で接続が切れることを利用して、それっぽく例外処理
・スマホとペアリングができていない場合は、createBondでペアリング
・マニフェストでActivityに対して”透明”テーマを適応
・Notificationでヘッドアップ通知で動作状況を把握
・BluetoothAdapterの初期化をdevelopersサイトのKotllin記載に修正

###manufactreDataMacDataStringの見つけ方
このプログラムではPrimarySesameMacDataの値について
![取得場所.png](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

マージされたAndroidManifest.xmlの内容を表示する

普段編集しているAndroidManifest.xmlがありますが、実際にapkに組み込まれるAndroidMaifest.xmlは外部ライブラリやFlavorのManifestとマージされた結果のxmlとなります。

AndroidStudioでAndroidManifest.xmlを開き、下のタブで `Merged Manifest` を選択することで、マージ結果のManifestを確認することができます。
左クリックから要素がどのManifestから来ているのか追うこともできます。

元記事を表示

実行中のadb server/Unity組込み/Android Studio/環境変数からadbを探して実行するPowerShell関数

# はじめに

PCに複数のadbやAndroid SDKがインストールされている時に起動中のadb serverと違うバージョンのadbを実行するとadb serverが再起動してしまいます。そのため、なるべく同じバージョンのadbを実行するPowerShellの関数を作りました。

# スクリプト

PowerShellの`$profile`に以下のスクリプトを追加してadbを実行すると以下の順番でadbコマンドを探します。

1. 実行中のadb server
2. 実行中のUnityから一緒にインストールしたAndroid SDKのadb
3. Android StudioからインストールしたAndroid SDKのadb
4. 環境変数PATHのadb

“`powershell
function FindAdb() {
# find from process list
$adbPath = Get-Process -Name “adb” -ErrorAction Ignore |
Sort-Object Id |
Selec

元記事を表示

眺めて覚える C# Xamarin Forms(13) File 操作

#Android上の任意のファイルアクセスするときにユーザーの許可が必要です。
##主なAndroidのファイルディレクトリ
|Android.OS.Environment|ディレクトリ|
|——————-|———————–|
|DirectoryAlarms|PRIVATE_EXTERNAL_STORAGE/Alarms|
|DirectoryDcim|PRIVATE_EXTERNAL_STORAGE/DCIM|
|DirectoryDownloads|PRIVATE_EXTERNAL_STORAGE/Download|
|DirectoryDocuments|PRIVATE_EXTERNAL_STORAGE/Documents|
|DirectoryMovies|PRIVATE_EXTERNAL_STORAGE/Movies|
|DirectoryMusic|PRIVATE_EXTERNAL_STORAGE/Music|
|DirectoryNotifications|PRIVATE_EXTERNAL_STORAGE/Notif

元記事を表示

Flutter Web View で Localの HTML , CSSを表示する

# はじめに
皆さんは**Flutter**触ってますか?
Googleが開発しているモバイル向けクロスプラットフォーム,かつWebまでかけちゃうぜ!!ってことで注目しいましたが,思ったとおりにできることも増えてきて,「もうアプリはFlutterで良いじゃん」も近いのかなと思っている今日このごろ.
今回はLocal(端末)に保存したHtml, Css の Web View 表示で手間取ったのでまとめていきます.

# Web Viewって?
アプリ内でWebページを表示できる機能です.
アプリによってはWeb Viewだけで実装しているようなのもちらほら...
そんなわけで結構普通に必要な機能です.
今回は端末内に保存したHtmlを表示させることが目的です.
Flutterでは[こちら](https://pub.dev/packages/webview_flutter)のパッケージを使うことで実装できます.

# 環境
“`bash
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):

元記事を表示

Kotlin, LiveData, coroutine なんかを使って初めてのAndroidアプリを作る(12)ユーザー認証編(Firebase Authentication)

[前回](https://qiita.com/kasa_le/items/560775076c3b2f00fcf7)の続きです。

Firebaseのクラウドデータベースである、Firestoreを使う準備として、ユーザー認証を行います。
ユーザー認証には、Firebase Authenticationを使います。

# 今回の目標
Firebase Authenticationの**FirebaseUI Auth**を使ってユーザー認証(ログイン/ログアウト)が出来る。様々な認証フローが使える。

# 環境など

AndroidStudioを3.6.3に上げました。

# Firebase Authentication
Firebase Authenticationには、2つの実装手段が用意されています。
**FirebaseUI Auth**と、**Firebase Authentication SDK**です。
https://firebase.google.com/docs/auth?authuser=0

## 1.FirebaseUI Auth
>ドロップイン認証ソリューシ

元記事を表示

「はじめてのAndroidプログラミング第4版」をAndroid Studio 3.6.3で読み進めてみると、、、

「はじめてのAndroidプログラミング第4版」の初版第2刷りをAndroid Studio 3.6.3で読み進めてみると、すぐつまづきます。(決して、誤記が原因ではない事を先にお断りいたします。)
原因は、本書ではバージョン3.4.1を対象に書かれれいるからでしょうか?(本書では、どのバージョンを対象にしているかは、はっきり書かれていなさそうですが、19ページインストールに関する図から読み解くと、おそらく3.4.1なのでしょう。)

 ここでは、その対処方法いくつか記述していきます。(逐次アップデートします。)

###1.ファイルパスが異なる。
 例えば、57ページの真ん中付近に書かれているactivity_main.xmlというファイルのファイルパス(ディレクトリ)は、本書ではapp/res/layoutですが、実際はapp/SRC/Main/res/layoutの中にあります。
 ここで、ファイルの探し方は、次の写真のとおりです。
![検索1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501

元記事を表示

【最新】Android Studioのダウンロード・インストール方法

#【最新】Android Studioの開発環境構築

最近アプリを作る機会が増えてきたので、備忘録として残しておこうかなと思っています。

Androidアプリを開発し始めてから3年程度ですが、それなりに勉強してきたのと、信憑性を十分に確認したうえで発信しています。

##Android Studioのダウンロード

まず、公式サイトからAndroid Studioをダウンロードし、起動します。
https://developer.android.com/studio?hl=ja

##Android Studioのインストール

基本、設定は変えずに「Finish」まで、「Next」をクリックしていきます。

あっという間に、インストールまで完了です。

##AVD(AndroidVirtualDevice)のインストール

###AVDってなに?
AVDとは、仮想Androidです。

アプリを作る際に、実機を用いて行う場合は必要ありませんが、実際、実機だけでテストをする!という訳にはいかないのです。

例えば、Xperiaは大丈夫だけど、Galaxyだとバグが出る・・・等の問題

元記事を表示

【超爆速 秒でコーディング】【Flutter】Adobe 公式 XD プラグインでXDからFlutterに変換してみた

# XD→Flutterがやばい

**この変換が30秒でできます。**

ファイル名

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

ファイル名 ファイル名なんかすごい田舎のガス屋さんを見つけた

ハンディプリンタを買いました。Yahoo!のイベント申込みシステム「PassMarket」で使おうと思って買いましたが、なんと現行バージョンではプリンタ機能が無いということがわかりました。

んで、これをどうにか活用できないかなと、ネットサーフィンしていて見つけたのがこれ。

http://www.mklpg.com/

大分の田舎のガス屋さんが作ったガス検針システムです。

・・・Qiitaにお住まいのエンジニアさんにしてみれば、ただのアプリ+プリンタですし、別にすごくもないかもしれませんが、素人の私からすると、これはすごい。

何がすごいって、その、「自分が使いたいから作ったら、なんだかよかった」という感じで、小さいガス屋さん向けに中古機材も組み合わせて廉価にほぼ頒布みたいな感じで売っているのです。

そんなこんなで200以上の小さいガス屋さんに売れているようです。

元記事を表示

「きのこの山」を「たけのこの里」に『正しく』自動で修正して差し上げるプログラム(Androidアプリ版)

##「たけのこの里」という非常に素晴らしいお菓子
人類であれば皆**「たけのこの里」**という非常に素晴らしいお菓子を食べたことがあるはずです。長さ2cmほどのたけのこ状のお菓子で、クッキーの生地の表面に程よい口溶けのチョコレートが二重にわたってコーティングされています。生地のクッキーは丁寧に形を整えながら焼くという「型焼」という当時日本初の手法を取っており、**明治様がどれほどの愛情を「たけのこの里」に注いでいるのか**がよくわかります。

しかしながら、たけのこの里という素晴らしいお菓子が発明される前に、明治様はとんでもない間違えを犯してしまいます。**「きのこの山」**という**完全出来損ないの商品**が発売されていたのです。たけのこの里に比べて**ポリポリと固く質感の悪いクラッカー**の先端に**適当にチョコを乗せただけ**という、なんとも言えないお菓子となっています。味も売り上げも旨さも人気さも全てにおいて「たけのこの里」のほうが1枚…いや**300枚上手**なのですが、悲しいことに**姉妹品**という括りになってしまっています。「たけのこの里」の爆発的ヒットの裏側で人気

元記事を表示

Flutter初心者が100日でアプリリリースするまでの記録

##この記事は
Flutterの初心者が100日後にアプリリリースするまでの軌跡()を綴ったものになります。
また、Flutterでアプリ開発をしてみて思った所感などを書いていきます。

Flutterからプログラミングやってみようかな? とか
アプリ開発始めてみようかな? とか
Flutterに少しでも興味がある方は特に是非読み進めてください。

##何故書こうと思った?
実はもう100日チャレンジを始めてから58日が経過しています。何故このタイミングなのか?
,,, 思いつきで書き始めました。

強いていうなら、今Flutterについて結構盛り上がっていると思うんですよ、Youtubeとかtwitterとか某フリーランスエンジニアの方とかね。それに乗っかろうかなと思ったわけです。

##開発者(筆者)スペック
専門学校で4年間プログラミング、データベース、ネットワーク等々を学び、今年の春から一部上場企業のWebエンジニアとして働いています。
研修中ですが、優しい先輩に囲まれ充実した日々を送っています。(なんか会社に提出する用みたいですね)

個人開発は、ちょうど約2年ほど前から初め

元記事を表示

LINE Developer Meetup for Android #62 メモ書き

[【Online】LINE Developer Meetup for Android #62](https://line.connpass.com/event/173284/) で気になったところだけメモ。
(最近メモばっか書いてんな…)

# APKファイルはいかにして作られるのか

– Android は端末の種類が多くて実行環境がコレ!って決まってないから JVM 上で動くやつ(.dex)を実行する
– コンパイル
– aapt2: AndroidManifestとリソースファイル
– *.flat を生成
– R.java
– proguard-rules.pro
– R8 & D8
– classes.dex を生成
– コード圧縮
– リソース圧縮
– 難読化
– 最適化
– desugar(D8がやってくれる)
– 署名
– debug は AndroidStudio が自動で生成してくれた

元記事を表示

OTHERカテゴリの最新記事