- 1. 【Flutter】’initialCameraPosition != null’ : is not true.が起こった時の解決策
- 2. KODIの日本語化する
- 3. Flutterウィークリー #83
- 4. VisualStudio&Gradleでマルチアーキテクチャ向けのAPKを作る
- 5. Android 9(Pie)以降で画面起動時に特定のViewに初期フォーカスを当てる方法
- 6. [Android]端末上のアプリ情報を覗き見る
- 7. CentOS7にcordova環境構築(GUI無し)
- 8. Dagger2をいまさらだけど導入する2019
- 9. [Android] タッチの座標を確認する
- 10. Android Studioを使ってGoogle Playを介さずにリアル(SHARP 304SH)で自作アプリを動かす方法
- 11. Firebase Cloud MessagingのFCMトークン更新タイミングについて
- 12. [ Android ] パーミッション設定
- 13. [ Android ] パーミッション設定
- 14. LoT LT アドベントカレンダー2019用のウツワ
- 15. AndroidのWebViewでキーボードが入力欄にかぶってしまうとき
- 16. 実践AndroidX Preference Library
- 17. VisualStudioでGradleを使ってNativeなAPKを作ってみる
- 18. Android フォアグラウンドからバックグラウンド、その逆のイベントとる
- 19. 後輩養成のすすめ。~あの辛い徹夜ラッシュをもうしないために~
- 20. [Kotlin] Android Studioで簡単に非同期処理
【Flutter】’initialCameraPosition != null’ : is not true.が起こった時の解決策
#なりゆき
以下のページを参照しながらコピペをしていると途中で画像のエラーが起きた。
[Google公式Flutter用Google Mapsプラグインを一通り使ってみた](https://qiita.com/aoinakanishi/items/25f2526fc7c1fe8350c6)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533444/67c98215-52aa-c3e1-6898-7b1a9e3d0c1d.png)
#解決方法
initialCameraPositionがnullということなのでカメラの初期座標を設定する。“`dart:lib/main.dart
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
height: MediaQuery.of(context).size.height,
KODIの日本語化する
各OSに合うKODIをインストールする
設定選択
インターフェース選択
スキン選択
フォント選択し
Arialを選択すれば日本フォント再生出来ます。地域
地域押し言葉をjapaneseに選択してあげれば
日本語化完了します
Flutterウィークリー #83
# Flutterウィークリーとは?
FlutterファンによるFlutterファンのためのニュースレター
https://flutterweekly.net/この記事は#83の日本語訳です
https://mailchi.mp/flutterweekly/flutter-weekly-83※Google翻訳を使って自動翻訳を行っています。翻訳に問題がある箇所を発見しましたら編集リクエストを送っていただければ幸いです。
# 読み物&チュートリアル
### dart2nativeでDart 2.6を発表: Dartを自己完結型のネイティブ実行可能ファイルにコンパイルします
https://medium.com/dartlang/dart2native-a76c815e6baf
Dart 2.6のdart2nativeの公式発表。これにより、 Dartコードから実行可能ファイルを生成できます。### GitHubアクションを使用したFlut
VisualStudio&Gradleでマルチアーキテクチャ向けのAPKを作る
# 前回の記事
– [VisualStudioでAntを使ってNativeなAPKを作ってみる](https://qiita.com/furui/items/57df2533d1faa2a38b6f)
– [VisualStudioでGradleを使ってNativeなAPKを作ってみる](https://qiita.com/furui/items/59b5a290b2539bd0c8c3)# はじめに
armeabi-v7a と arm64-v8a の両方のダイナミックライブラリ(*.so)をを含めたAPKを作る方法を色々検証し、作成する方法が分かりましたのでまとめていきます。ただし、この方法ですと色々問題があります。
「**どのようなもんだいがあるのか**」「**私の場合はどのように対応したのか**」も一緒にまとめていきます。今回は「[VisualStudioでGradleを使ってNativeなAPKを作ってみる](https://qiita.com/furui/items/59b5a290b2539bd0c8c3)」のプロジェクトを使って説明します。
# マルチアーキ
Android 9(Pie)以降で画面起動時に特定のViewに初期フォーカスを当てる方法
今さっき知ったのですが(遅)、Android 9(Pie)で[Viewのフォーカスに関する仕様変更](https://developer.android.com/about/versions/pie/android-9.0-changes-28?hl=JA#focus)があり、**タップモードにおいてActivityは初期フォーカスを暗黙的に指定できなくなっていました**。
この初期フォーカスを自動で当てる機能は入力フォーム画面や検索画面では便利で、使っている方も多いのではないでしょうか。Oreo以前であれば、以下のxmlを持つActivityが起動したとき、暗黙的に`EditText`に初期フォーカスが当たっていましたが、Pie以降で同様のことを実現する場合、**明示的に初期フォーカスを当てるViewを指定しなければならなくなりました**。
“`xml
[Android]端末上のアプリ情報を覗き見る ## 端末にインストールされたパッケージ(apk)のバージョン情報を覗こうとした
とあるプロジェクトにて、アプリのバージョンコード・バージョンネームを上げてビルド。
出力されたoutput.jsonをみると、どうやらバージョンが変わっていない。真偽を確かなものとするためapkの情報を覗くことに。
(注:ここではバージョンが変わらなかった場合の解決方法は説明しません。)## 前提として
調べたいapkがインストールされた端末がPCと接続されていること。
adbが使えること。## dumpsysコマンド
dumpsysコマンドはシステムサービスの状態をダンプしてくれます。
簡単な例で言うと、バッテリーの残量やメモリの消費量、ネットワーク通信状態などを、コマンド一発で確認することができます。(原文ママ)開発者としてはぜひ知っておきたいコマンド。
## dumpsys packageでパッケージ情報を覗く
ターミナルにて、以下を実行
“`adb shell dumpsys package パッケージ名“`
これで107行くらいの情報が出てくる。(長いから載
CentOS7にcordova環境構築(GUI無し)
CentOS7にcordova (android アプリコンパイル環境含む)の構築手順
android studioは導入せず、android sdkのみ入れてみました。
GUI環境無でapkファイルの生成までできます。“`sh
sudo yum install -y gcc-c++ make
curl -sL https://rpm.nodesource.com/setup_12.x | sudo -E bash –
sudo yum install nodejs
sudo npm install -g cordova
mkdir cordova
cd cordova/
cordova create myapp
cd myapp/
# cordova platform add ios
cordova platform add android
cordova requirements
“`“`console
$ cordova requirementsRequirements check results for android:
Java JDK: not ins
Dagger2をいまさらだけど導入する2019
自分の担当するプロジェクトで全然Daggerに触れる機会がないので、いい機会なのでDagger2を今更導入してみました。
# きっかけ
自分が今取り組んでいるDDDにおいて、各レイヤーごとに処理を分ける必要がありますが、プレゼンテーション層から下のレイヤーのインスタンスを作るのが非常に手間だったからです。
DIを利用して依存性を注入してあげれば、ActivityやFragmentから“`kotlin:HomeActivity.kt
private lateinit var homeApplicationService: HomeApplicationServiceoverride fun onCreate(bundle: Bundle?) {
・・・
val homeDatabase = HomeDatabase(this)
val homeCache = HomeCache(this)
val homeDataStore = HomeDataStore(homeDatabase, homeCache)
val homeReposit
[Android] タッチの座標を確認する
タッチの座標をお手軽に確認する方法の紹介。
`input tap`するときの座標を確認するときに便利。開発者オプションの”Pointer location”機能を有効にすることで、
画面上部にタッチイベントの詳細が表示される。タッチ数・座標・測度・強さ・大きさおよび、タッチの軌跡が確認できる。
“Pointer Location
Android Studioを使ってGoogle Playを介さずにリアル(SHARP 304SH)で自作アプリを動かす方法
本内容を利用した場合の一切の責任を私は負いません。
#バージョン
– OS
OS 名: Microsoft Windows 10 Home
OS バージョン: 10.0.18362 N/A ビルド 18362
システムの種類: x64-based PC
– Android Studio
Android Studio 3.5
Build #AI-191.8026.42.35.5791312, built on August 9, 2019
JRE: 1.8.0_202-release-1483-b03 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
– Android
4.4.2
– ADB USBドライバ
17.1(8698791byte 2019/7/9)#準備
Android Studioを公式からダウンロード&インストールする。
ADB USBドライバを下記からダウンロード&
Firebase Cloud MessagingのFCMトークン更新タイミングについて
# FCMトークンの仕様
Firebase Cloud Messagingを使ってアプリへのプッシュ通知テストをする際に、Firebaseコンソール上で対象デバイスのFCMトークンを登録する必要があります。
![スクリーンショット 2019-11-13 18.24.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6380/b96ec29a-dffc-ede4-7486-c76491810e8b.png)
このFCMトークンがデバッグ中にいつのまにか変わっていることがあり、挙動を把握するためドキュメントで仕様を確認してみました。OS毎に挙動が異なるようだったので、それぞれの生成・更新タイミングをメモしておきます。
# Android【参照】[Android で Firebase Cloud Messaging クライアント アプリを設定する | Firebase](https://firebase.google.com/docs/cloud-messaging/android/client?h
[ Android ] パーミッション設定
Androidのパーミッション設定について記す。
##パーミッションとは
例えば、Android 上でインターネットに接続するためには、そのためのパーミッションを必要とする。
この時AndroidManifest.xmlに以下のような内容を記述する。~~~xml
~~~これがパーミッションである。
##種類
パーミッションには様々な種類がある。
上記のNETWORK ネットワーク通信に関するものを始め、PERSONAL_INFO 個人情報、DEVELOPMENT_TOOLS 開発ツール、MESSAGES 送受信したメッセージなど多岐に渡る。
これらを指定したい場合は、上記の追加した記述でINTERNETという部分を変えればよいだけである。
以下に一例を示す。・ネットワーク通信
**ACCESS_NETWORK_STATE**:ネットワーク状態の表示を許可する。
**ACCESS_WIFI_STATE** :Wi-Fi状態に関する情報の表示を許可
[ Android ] パーミッション設定
Androidのパーミッション設定について記す。
##パーミッションとは
例えば、Android 上でインターネットに接続するためには、そのためのパーミッションを必要とする。
この時AndroidManifest.xmlに以下のような内容を記述する。~~~xml
~~~これがパーミッションである。
##種類
パーミッションには様々な種類がある。
上記のNETWORK ネットワーク通信に関するものを始め、PERSONAL_INFO 個人情報、DEVELOPMENT_TOOLS 開発ツール、MESSAGES 送受信したメッセージなど多岐に渡る。
これらを指定したい場合は、上記の追加した記述でINTERNETという部分を変えればよいだけである。
以下に一例を示す。・ネットワーク通信
**ACCESS_NETWORK_STATE**:ネットワーク状態の表示を許可する。
**ACCESS_WIFI_STATE** :Wi-Fi状態に関する情報の表示を許可
LoT LT アドベントカレンダー2019用のウツワ
#かきます
AndroidのWebViewでキーボードが入力欄にかぶってしまうとき
(日本語資料が少なくて、探すのにけっこう苦労したのでメモ)
AndroidでWebViewをそのまま使うと、入力欄を押してソフトキーボードが出現させたときに、キーボードが画面にかぶってしまうことがある。そんなときは、対象WebViewを含むFragment or Activityの`onCreate()`に以下のコードを入れれば良い。
“`fragment.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activity?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)
}
“`これで、キーボードが出現したときにもFragment or Activityの大きさが再計算されて、キーボードが被らなくなる。
出典
[Window Soft Input Mode ConstraintLayout](
実践AndroidX Preference Library
Androidアプリの開発でAndroidX Preference Libraryを使用して設定画面を構築した際、躓いた点を記載します。
# 前提
Android Studio 3.5.2
Kotlin 1.3
CompileSdkVersion 29# 準備
アプリケーション配下のbuild.gradleに下記内容を記載し、ライブラリを導入します。
“`gradle:build.gradle
implementation ‘androidx.preference:preference:1.1.0’
“`# 設定画面の生成
Android StudioのProjectツリーの任意の場所で、コンテキストメニューからNew -> Activity -> Settings Activityを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144437/ce3127d8-b49c-0e5a-2a69-639be640bcc6.png)
選択するとダイアログが
VisualStudioでGradleを使ってNativeなAPKを作ってみる
# はじめに
昨日「[VisualStudioでAntを使ってNativeなAPKを作ってみる](https://qiita.com/furui/items/57df2533d1faa2a38b6f)」という記事を上げました。
散々Gradleでうまく出来ないと言っておりましたが、あの後すぐにうまく出来ました。
どうやったらGraldeでできるのか、そもそも何故うまくいかなかったのかをまとめていこうと思います。# 開発環境
– OS : Windows 10
– Visual Studio 2017 Professional# プロジェクトの準備
※1以外はAntと同じ手順です。### 1. Gradleプロジェクトの作成
「**AndroidGradle**」という名前でプロジェクトを作っていきます。
![00.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75533/f222375a-ddd6-841c-0fbd-666c1cec144f.gif)### 2. Sharedライブラリ
Android フォアグラウンドからバックグラウンド、その逆のイベントとる
![スクリーンショット 2019-11-12 23.09.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67083/1848c92b-0a0c-5095-3ce0-5c0e51303f6e.png)
ハマりすぎたのでメモ2
参照とかnugetからパッケージ落としてくるとこは前記事を参照仕組みはarch.lifecycle extentionsって言うのでなんでもライフサイクルが管理できる様になる
何も入れないとActivityはonPauseとonResumeとかあるのでこれはいらないが、
これをアプリケーション自体に適用するとアプリケーションがフォアグラウンドになった時とかバックグラウンドになった時のイベントをハンドリングできる様になる画像を見れば以下のことが分かる
・アプリケーション自体のクラスの実装の仕方
・アプリがバックグラウンド、フォアグラウンドに行った時のイベントハンドリングのメソッド
・nugetから落とすパッケージ
・参照に入れるもの(参照を追加で検索>Extentio
後輩養成のすすめ。~あの辛い徹夜ラッシュをもうしないために~
# 1.はじめに
## 1.1 経緯
年代によって大きく技術力は変わります。僕は学生ですので会社では年代は関係ないのかもしれませんが、プログラミングを必要としない世界(例えば非IT企業、研究室、中高学校)では大きく変わってしまうのです。もちろん一定数そうゆう人は入ってきます。学校ではパソコン関連の同好会みたいな部署が学園祭のアプリや動画を作っていました。僕の学校で問題だったのは人が足りないということ、そして学年によって差が多いところでした。## 1.2 なにが問題?
まずは人が足りないということです。学校でやってるアプリとかっていうのは企業の真似事ですからアプリはデザインの人が仕様書作ってみんなで共同作業を…って感じですし、動画は絵コンテから映像化…ここからここまでは○○で…って感じでやるわけですよ。でも人が足りなければできることも少ない、でもやりたい、だから一人でやる。っていう感じに一人に背負わされるわけです。学生なのに労働基準法に抵触(学生だから適法だけども)してるわけですね(笑)そして二つ目は代によって差があるということです。学校なので留年しない限り進級して卒
[Kotlin] Android Studioで簡単に非同期処理
# はじめに
AndroidアプリでHTTPリクエストをしようとするとメインスレッドでやるなと言われるので、手っ取り早く解決する方法を一応メモ。# 環境
– Android Studio
– 3.5.1
– Kotlin
– 1.3.50HTTPリクエストするならインターネット通信のパーミッションを取るのを忘れずに!
“`xml:AndroidManifest.xml
“`# コード
メインスレッドでやらなければいいので、Threadクラスで別スレッドを作成すればOK。
今回はとりあえずHTTPリクエストをしてみる。“`kotlin:sample.kt
Thread {
// ここは非同期処理
val url = URL(“https://www.google.com”)
val httpCone = url.openConnection() as HttpURLCo