- 1. Android の Gradle の感覚を掴むためのざっくりとした説明
- 2. Android端末とPCを接続し、PCのchrome DevToolsを利用する方法
- 3. FlutterアプリをCodemagicでCDしてみた(App Store Connect)
- 4. Android Fragmentの中にタブ付きスワイプビューを作る(kotlin)
- 5. GitHub ActionsでAndroidアプリのCIを構築する方法
- 6. Activityへ値を渡し戻り値も得る
- 7. Android関連 利用頻度高い製品のバージョン (2020-06-01)
- 8. Android Studioのオススメ初期セットアップ(Mac)
- 9. 画面遷移で別のアクティビティを開始するやり方 – Android
- 10. こんなソースコードはイヤだ-無名関数のパワー
- 11. Spek(Android)入門
- 12. M5StickCのボタン押下でスマホから現在地をしゃべらせる(1/2)
- 13. UnityからAndroid端末にアプリをインストールするときにでたエラーについて
- 14. 2020年6月から11月までに行われる開発者向け大規模オンラインカンファレンス・サミットをまとめみた!
- 15. Coursierで特定のmaven artifactの依存関係を確認する
- 16. 7年前DynabookタブにAndroidx86入れてゲーム(続き)
- 17. Dagger-HiltはViewModelのFactoryをどのように差し込むのか
- 18. UnityでGoogle Play Game Services導入する際、あらゆる罠にハマった話
- 19. FlutterアプリでonResume的なタイミングの処理をする
- 20. Androidの密度修飾子(ldpi, mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi)をコード上で判定する。
Android の Gradle の感覚を掴むためのざっくりとした説明
## 前略: Gradleは奥が深くできることが多いがなるべくシンプルに説明したい
GradleはAndroidアプリ開発には必須なスキルですが、環境設定系の内容なので役割として触れる人が限られてしまうことが多いのではないかと思います。
そんなGradleに対して、なんとなくストレスを減らし、なんとなく感覚を掴んでもらえれば思ってます。
なるべく短く簡潔を心がけますm(_ _)m## Gradle is
– オープンソースのビルドシステムです。
例えばJavaプロジェクトではjarファイルを、JavaのWebアプリならwarファイルを作ってくれたり、汎用性の高さからさまざまなプラットフォームで使われています。
ビルドはすべてプラグインで行うようになっていて、JavaをビルドしてJarファイルを作りたいなら build.gradle ファイルに以下を定義して gradle を実行します。
“`groovy
apply plugin: ‘java’
“`
– ローカル上やネットワークリポジトリ上にあるライブラリとの依存関係の解決ができます。
– 中身はGroovyで書かれていま
Android端末とPCを接続し、PCのchrome DevToolsを利用する方法
## おおまかな手順
1. Androidの開発向けオプションを有効にする
2. USBでPCに接続する
3. PC側のChromeで`chrome://inspect`に接続する### 操作した環境
– macOS 10.14.6
– Android 9## 詳細
### 1. Androidの開発向けオプションを有効にする
1. `設定`から`端末情報`の画面に進む
2. 下部にある`ビルド番号`を7回タップすると開発向けオプションが有効になる
3. `設定`から`システム`の画面にいき、`詳細設定`を開く
4. `開発向けオプション`が表示されているのでタップ
5. 少し下に画面スクロールするとある`USBデバッグ`をONにする → `ここ忘れがち`### 2. USBでPCに接続する
1. USBでPCに接続する
2. Android側で「USBデバッグを許可しますか?」と聞かれるのでOKで許可する
3. Android側のChromeを立ち上げて適当なwebページを表示する### 3. PC側のChromeで`chrome://inspect`に接続する
1
FlutterアプリをCodemagicでCDしてみた(App Store Connect)
Google Playストア版の続きになります。
FlutterアプリをCodemagicでCDしてみた(Google Playストア)
https://qiita.com/kasa_le/items/17720a02ea0a4de2b66eCodemagicへは、すでにtagトリガーなどで動くワークフローがあるものとします。
([こちらの記事](https://qiita.com/kasa_le/items/d23075d817f42e869778#codemagic%E3%81%AB%E5%85%A5%E3%82%8C%E3%81%A6%E3%81%BF%E3%81%9F)などを参照して下さい。)
また、App Store Connectにて、アプリを登録済で、かつTestFlightへ手動でアプリ公開をしたことがあることが前提です。
([こちらの記事](https://qiita.com/kasa_le/items/fed9f25b92091bd162ce)などを参照して下さい。)# 手順
基本的には以下のページの通りです。
https://docs.codemag
Android Fragmentの中にタブ付きスワイプビューを作る(kotlin)
#はじめに
完成イメージはこんな感じAndroid kotlin
fragmentの中にViewPageでスワイプできる画面を作る pic.twitter.com/uayDvUnmIr— げん げんと (@gento34165638) May 31, 2020
「`BottomNavigationView`のボタンから遷移した先の、fragmentのページの中で、さらにfragmentで
GitHub ActionsでAndroidアプリのCIを構築する方法
## はじめに
GitHub Actionsを使い、Androidアプリのビルドと単体テスト、静的解析を行うCIを構築します。
## 本記事で書かないこと
– GitHub Actionsの概要や基本的な操作方法
[私が以前書いた記事](https://qiita.com/uhooi/items/29664ecf0254eb637951) が参考になると思います## 設定ファイルの紹介
設定ファイルの内容を上から順に紹介します。
### name
ワークフローの名前を設定します。
私は単純に「CI」としています。
“`yaml:ci.yml
name: CI
“`### on
ワークフローを実行するトリガーを設定します。
私はGit-flowモデルで開発しており、以下のように設定しています。
“`yaml:ci.yml
on:
push:
branches:
– master
– develop
paths-ignore:
– docs/**
– README.md
Activityへ値を渡し戻り値も得る
#はじめに
空のActivityに値を渡すことが出来るまでを書いていきます。
ActivityへはGson形式で受渡を行い。
さらにメインのアクティビティとサブのアクティビティにはFragmentを使って同じ画面を表示します。#準備
##strings.xmlを編集
strings.xmlを下記の様に編集します。“`strings.xml
QiitaActivityFragmentSample
編集
String型
Int型
Double型
“`##Gsonを扱えるようにする
左のプロジェクトの
Android関連 利用頻度高い製品のバージョン (2020-06-01)
# 2020-06-01 現在 Android関連 利用頻度高い製品のバージョン
個人的に特定時期のバージョン情報がまとまっていると嬉しいのでまとめたものです。
## Android Studio
4.0.0 (2020-05-28)
Download Android Studio and SDK tools | Android Developers
https://developer.android.com/studioAndroid Studio release notes | Android Developers
https://developer.android.com/studio/releases## Gradle
6.4.1 (2020-05-15)
Gradle Build Tool
https://gradle.org/Gradle | Releases
https://gradle.org/releases/## Android Gradle plugin
4.0.0 (April 2020)
Android Gradle
Android Studioのオススメ初期セットアップ(Mac)
## はじめに
Android Studioのオススメ初期セットアップを紹介します:level_slider:
セットアップ完了前後でこのように変わります。
__before__
__after__
## 環境
– OS:macOS Catalina 10.15.3
– Android Stud
画面遷移で別のアクティビティを開始するやり方 – Android
#今回学ぶこと
・画面遷移の実装方法#目指す成果物
このようにボタンをタップしたら,別のActivityに画面遷移する実装をしてみたいと思います.![gif_画面遷移_qiita.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/249786/629ea04e-0620-6051-a4ff-ed3da817b942.gif)
#ディレクトリ構成
ポイントは「MainActivity.kt」のようなActivityを2つ作ることと、レイアウトXMLファイルを2つ作ることです.
#ステップ
実装方法は2パターンあります
ポイントは画面遷移での必須の,「
こんなソースコードはイヤだ-無名関数のパワー
プログラムのソースコードのより良い書き方をまとめていこうと思います。
# 無名関数のパワー
“`sample.kt
var decodeUrl = “”
try {
decodeUrl = URLDecoder.decode(this.url, “UTF-8”)
} catch (e: Exception) {
decodeUrl = this.url
}
print(decodeUrl)
“`[どのようにリファクタリングできるのか](https://www.sentohsharyoga.com/ja/bad_source_code/entry/anonymous_function_is_useful)
Spek(Android)入門
# はじめに
AndroidのUnitTestで[Spek](https://www.spekframework.org/)が流行しているので(今更ですが)、導入からはじめてみました。この記事では、公式ドキュメントを元にAndroidプロジェクトのセットアップから
UnitTestの実行までを記載します。そもそも、Spekとは?何が便利か?についてはこのあたりの記事やDroidKaigiでもよく紹介されているので、
そちらを閲覧してみてください。
https://qiita.com/k_keisuke/items/815ced486e8cdff8670d
https://qiita.com/sadashi/items/a5b93c9fc06e084456d2# 導入
1.JUnit5を実行するため、サードパーティのライブラリを導入。
—プロジェクト自体はAndroidStudio標準のFragment + ViewModel で作成しました。
https://github.com/mannodermaus/android-junit5 のページに記載されている
M5StickCのボタン押下でスマホから現在地をしゃべらせる(1/2)
以前の投稿 [GoogleMapを使ってサイクリングに出かけよう](https://qiita.com/poruruba/items/9bced2e9b23c6d05cc9f) で、GoogleMapに音声ナビゲーションしてもらいました。
今回は、GoogleMapに頼らずに、スマホのGPSだけでナビゲートしてもらいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261826/67db435e-7042-b049-efc4-b42a3e201fa3.png)
ですが、自転車運転中は、スマホの画面を見るのは危険ですので、やっぱり音声でナビゲートして欲しいところです。
例えば、「目的地まで100メートル、北西方向です。」と言ってくれれば、助かります。方向はどうやって認識するかというと、そこはアナログに方位磁針に助けを借りて、自転車に取り付けました。自転車ベルと方位磁針がセットのやつが700円弱です。ずっと、音声でだらだらと音声ナビしてもらうのもよいのですが、できれば、教えて
UnityからAndroid端末にアプリをインストールするときにでたエラーについて
##エラー
>
adb: failed to install /Users/UserName/UnityProject/TestUnityProject/ProjectName/Builds/Apk/AppName.apk: Failure [INSTALL_FAILED_OLDER_SDK: Failed parse during installPackageLI: /data/app/vmdl1509473597.tmp/base.apk (at Binary XML file line #8): Requires newer sdk version #28 (current version is #27)]
“`*日本語訳*
>
adb:/Users/UserName/UnityProject/TestUnityProject/ProjectName/Builds/Apk/AppName.apk:のインストールに失敗しました:[INSTALL_FAILED_OLDER_SDK:installPackageLIの解析に失敗しました:/data/app/vmdl15094735
2020年6月から11月までに行われる開発者向け大規模オンラインカンファレンス・サミットをまとめみた!
こんにちは(๑╹ω╹๑ )
毎年夏季前後で開発者向けの大規模なカンファレンスやサミットが開催されていますよね!!今年は例年と違いオンラインでの参加が可能なイベントが増えております!
※この記事で紹介するイベントはオンラインでの視聴が可能なイベントのみですこのような記事を書き残そうと思ったのは、
情報の整理が追いついていなかったためです笑※日付は現地時間です
|主催|イベント名|日程|備考|
|—|—|—|—|
|Microsoft|[Cloud Summit](https://resources.office.com/en-in-landing-IN-M365DEP-WBNR-FY20-06Jun-01-Microsoft-Cloud-Summit-4935.html)|6月1日〜6月5日|Azure、ブロックチェーン、AI、Dynamics 365、Power Platform|
|Cisco|[Cisco Live](https://www.ciscolive.com/us.html)|6月2日〜6月3日||
|Android|~~[Android1
Coursierで特定のmaven artifactの依存関係を確認する
Androidでの開発やJavaなどのJVM言語での開発で、あれ、このライブラリって何に依存しているんだっけ?って思うことよくありますよね?
皆さんはどのように確認しているでしょうか?
https://mvnrepository.com/ などのサイトを見たり、 `./gradlew dependencies`で確認するなどさまざまだと思います。今日はScalaで書かれたCoursierというCLIツールが便利だったので紹介します。
https://get-coursier.io/# 使い方
ターミナル上で `coursier resolve maven_artifact`という感じで確認できます“`
$ coursier resolve io.circe:circe-core_2.12:0.10.0
io.circe:circe-core_2.12:0.10.0:default
io.circe:circe-numbers_2.12:0.10.0:default
org.scala-lang:scala-library:2.12.6:default
org.scala-
7年前DynabookタブにAndroidx86入れてゲーム(続き)
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F543063%2F4c36d16e-f069-6fad-d7fd-6e567e454d70.jpeg?ixlib=rb-1.2.2&auto=format&gif-q=60&q=75&s=afb46a3d39eff27935bff95fef3e5343)
前回、「7年前のWinタブにAndroidx86を入れてゲームをする」記事を書いた。
### 7年前 Corei5 WinタブにAndroidx86入れてゲームとか
https://qiita.com/ksmndevelop/items/764307de2e0342137a47一ヶ月程度経ってしまったが、その後のことについて追記しておく。
# ゲーム動作の様子動画
とりあえず、きらファンとプリコネをプレイした動画を上げた。Dynabook VT712 Android x86 きらファンテスト – Yo
Dagger-HiltはViewModelのFactoryをどのように差し込むのか
AAkiraさんのブログを見てViewModelのInjectがすごいと思って不思議に思って仕組みを調べてみました。
https://aakira.app/blog/2020/05/dagger-hilt/まだ正式にリリースされているわけではないので後々仕組みが変わる可能性があります。
このブログで紹介されているサンプルコードをベースに見ていきます。 (理解しやすいサンプルを公開していただき、本当にありがとうございます :pray: )
https://github.com/AAkira/dagger-hilt-example以下のように書いておくことで、VoiewModelをInjectできるそうです。
“`kotlin
class MainViewModel @ViewModelInject constructor(
private val repository: SampleRepository,
@Assisted private val savedState: SavedStateHandle
) : ViewModel() {
}
“`“
UnityでGoogle Play Game Services導入する際、あらゆる罠にハマった話
UnityプロジェクトにGoogle Play Game Servicesを導入した際、いろいろ罠にはまって24時間くらい無駄にしたので、ここに何が発生してどうやって解決したかメモしておきます。
# 私の開発環境
* Unity 2018.4.10f1
* Google Play Game plugin for Unity v 0.10.09
* Android SDK level 28macで作業しています。
# 動かしたいコード
[Google Play Game Servicesプラグイン](https://github.com/playgameservices/play-games-plugin-for-unity)を使って、プロジェクトにクラウドセーブ機能を導入しようとしています。
動かしたいコードは、サービスの初期化とプレイヤの認証です。“`C#
var conf = new PlayGamesClientConfiguration.Builder()
.EnableSavedGame()
.Build();
PlayGamesPlatfo
FlutterアプリでonResume的なタイミングの処理をする
# 状況
カレンダー式表示のアプリを作成しています。「今日」が分かりやすいように、その日付のセルだけ背景色を変えています。
しかし、特にiOSで問題になるのですが、アプリをホームボタンでバックグラウンドに移動していて、もう一度アプリを立ち上げたときに、そのタイミングで日付が変わっていても「今日のセル」が移動してくれません。
Androidでいう、”onResume”のタイミングで処理ができれば解決できると思い、調査しました。# 環境など
|ツールなど|バージョンなど|
|:–|:–|
| MacBook Air Early2015|macOS Mojave 10.14.6|
|Android Studio |3.6.1|
|Java |1.8.0_131|
|Flutter|1.12.13+hotfix.9|
|Dart |2.7.2|
|Xcode |11.3.1|# 解決策
`SystemChannels.lifecycle.setMessageHandler`を使います。
詳しくはこちら。
https://api.flutter.dev/flutter/servi
Androidの密度修飾子(ldpi, mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi)をコード上で判定する。
Androidの密度修飾子はDrawableリソースの場合、それぞれのフォルダを使うことで自動的に端末のDrawableリソースが使われます。
しかし、今の手持ちの密度修飾子は何なんだ?というときがあるので、コード上で判定してみたいと思います。“`kotlin:MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val densityDpi = resources.displayMetrics.densityDpi
(findViewById(R.id.textView2) as TextView).text = densityDpi.toString()
if (0 < densityDpi && densityDpi <= DisplayMetri