- 1. Android開発 kotlin ボタン、画面遷移の実装
- 2. 最新の Retrofit の使い方についてまとめた(2020 年 12 月時点)
- 3. 写真とUIデザインの意外な共通点
- 4. [Android]WorkManagerでユーザを待たせないUIを実現する
- 5. エンジニアの道を選んで1年4ヶ月たった話
- 6. Google PlayのUSランキングの上位層のアプリを見ながらゲームを考えてみる #1
- 7. Composeのライフサイクル (onActive, onCommit, onDispose) についてメモ
- 8. Androidスライド削除のやり方
- 9. openFileInputでファイルを読み込むときのディレクトリの場所
- 10. Android studio:Kotlin:アプリの更新を行う
- 11. Android studio:Kotlin:play store へアップロードするaapファイルの作成
- 12. Android studio:Kotlin:アプリのプロジェクト作成時にやること
- 13. Ethereumでガチャりたい!
- 14. 赤くなったKindle Fire HDを復活させる(未完)
- 15. 登山アプリについてメモ(2020年の年末)
- 16. webエンジニアだった私が新規プロジェクトでAndroid開発メンバーになった話
- 17. Flutterの2DゲームエンジンFlameはドット絵ゲーム作成におすすめ?
- 18. *Android*ListViewにカスタムレイアウトを使用してスクロールできることを確認・タップしてリストから値を取得する
- 19. Firebaseのメッセージ受信からアプリ起動までの覚書
- 20. 【Kotlin】setFragmentResultを用いた画面遷移
Android開発 kotlin ボタン、画面遷移の実装
#はじめに〜自己紹介〜
工業高校を出てから情報系の専門学校に2年通い今年新卒で就職しました。
ただいまアプリ開発に奮闘中です。
##投稿した経緯
会社でiOS/Androidアプリの開発を頼まれて、Androidアプリの開発でだいぶ手こずっているので今後のためのメモとして投稿します。Flutterとか使った方よかったのかな…(苦)もしかしたら間違っていることがあるかもしれませんが悪しからず。##開発環境
– iMac 2019モデル Big sur(BootCampでWindowsを使用しています。)
– 32GBメモリ
– Android Studio
– kotlin#Kotlinとは
はじめにKotlinについて少しだけ語ろうかと思います。
kotlinは比較的に新しいプログラミング言語で、2011年にJetBrainsにより開発され、2017年にGoogleにより、Androidアプリ開発の公式サポートを受けました。JVM上で動作する言語です。Androidだけでなくサーバとかでも使えるみたいです?最大の特徴はJavaと100%の相互運用が可能というとこでしょうかね
最新の Retrofit の使い方についてまとめた(2020 年 12 月時点)
本記事は[Android Advent Calendar 2020 – Qiita](https://qiita.com/advent-calendar/2020/android)の 7 日目の記事です。
最近、今更ながら Retrofit で HTTP クライアントを実装しました。
使い方をネットで調べていたのですが、古い情報が多いように感じたので、これから Retrofit を導入したい人向けに最新の使い方をまとめます。
※2020 年 12 月時点の情報なので、今後古くなる可能性があります。# Retrofit とは
[Retrofit](https://square.github.io/retrofit/)とは、型安全な Android 向けの HTTP クライアントライブラリです。
正確には[OkHttp](https://square.github.io/okhttp/)のラッパーで、アノテーションなどを使ってより実装しやすくするためのライブラリです。
[アプリ アーキテクチャ ガイド](https://developer.android.com/jetpack/g
写真とUIデザインの意外な共通点
1年ぶりです、Classi Advent Calendar 2020 7日目は、デザイナーの@shio312が毎年のいつもの記事とはちょっと違った味でお送りします。
# はじめに
去年度から今年度にかけて、他部署の方に
「デザイナーの頭の中身ってどうなってるの?」とか、
「特にUIのような画面を起こす人君たち(特に私)の頭はどんな構成なんじゃ?」
とよく訊かれました。と言うわけで、UIデザイナーの頭をかち割って中身を見せることはできないので、今年は自分はこんなふうにUIに紐づけて世界を見ていますよ、という実例を紹介しようと思います。
**写真で。**
「エッ?関係あんの?」
と思われるかもしれませんが、趣味として嗜む方も多い写真を例にお話しする事で、少しでも画面デザイナーに共感と親近感を覚えていただけると嬉しいなと思い、挑戦としてお話ししてみようと思います。ちなみに、UI関連に携わるデザイナー皆が皆そうではないことだけは事前にご理解の上、拝読くださいね。
##4枚の写真を用いた実例紹介するよ
さてここに私自身が撮影した4枚の写真があります。
**—-A—-
[Android]WorkManagerでユーザを待たせないUIを実現する
## はじめに
仕事や日常で、ユーザが操作できない時間が長いアプリを触ることがある。気が短いので、操作できない区間が少しでもあるとイライラしてしまう。スマホアプリでは、安直にユーザ操作を禁止しないで欲しいという思いから、この記事を書く。メール送信、掲示板の書き込み、つぶやきなどの投稿機能があるアプリを想像しながら読むと分かりやすいと思う。ユーザが操作できない時間が長いUI = ユーザを待たせるUIとする。
話が長いと感じるのであれば、「実践」だけ見れば良し。
後、Firestoreを使っていたり、ローカルDBの変化を監視する仕組みを使っているなら、WorkManager使わなくても同じことができるので、読む必要ないかも。## ユーザを待たせるUIとそうでないUI
### ユーザを待たせるUI**具体例**
1. (アプリ)投稿内容を入力する画面を表示する
2. (ユーザ)投稿内容を入力して、送信ボタンを押す
3. (アプリ)投稿処理を開始。ProgressDialog[^1]などを表示して、ユーザが操作できないようにする
4. (アプリ)投稿処理が終わったら、Progre
エンジニアの道を選んで1年4ヶ月たった話
# 初めに
初めまして来年からAndroidエンジニアとして働く予定のmessiです。
Twitter -> https://twitter.com/175Atsu175
趣味でカメラやってるのでそのアカウントも是非
Twitter -> https://twitter.com/messi0601今回は自分がAndroidと出会ってエンジニアで働こうと決めてから1年4ヶ月たった今を振り返ってみたいと思います。
去年の夏まではAndroidなんてやったことないし、大学は経営学部なのでエンジニアとは疎遠です。(Pythonちょっと触ったぐらい)
エンジニアとしてもチュートリアルの本ぐらいしか行ったことがなかった人がなぜか来年からAndroidエンジニアとして働くことになった経緯やエンジニアの道を選んで今までどんなことしてたかを書いていきます。# 2019年8月[Androidとの出会い](0ヶ月目)
Androidに初めて出会ったのは2019年の8月でした。出会ったきっかけは8月に参加したAndroidのインターンでした。
申し込んだきっかけとしては、元々iosのチュートリ
Google PlayのUSランキングの上位層のアプリを見ながらゲームを考えてみる #1
#はじめに#
就活用にUnityでなにかハイパーカジュアルゲームを作ろうと思ったのですが、せいぜい十個くらいしかやったことがないのでそこまでこのジャンルについて知りません。
なのでこの記事ではGooglePlayのアメリカの無料ゲームのランキングを見ながらアプリの企画について考えていこうと思います。
餅は餅屋といいますし、上位に入ってるアプリの良い所を参考にすれば共通点やDL数をあげるコツが分かるのでは?という発想です。
なんでアメリカなの?かというとそっちのほうがユーザーが多く、ユーザー数をより多く欲しい場合は対応せざるを得ないと思うからです。#見ていくアプリ#
URL:https://play.google.com/store/apps/collection/cluster?clp=0g4cChoKFHRvcHNlbGxpbmdfZnJlZV9HQU1FEAcYAw%3D%3D:S:ANO1ljJ_Y5U&gsr=Ch_SDhwKGgoUdG9wc2VsbGluZ19mcmVlX0dBTUUQBxgD:S:ANO1ljL4b8c&hl=us&gl=us
![image.png
Composeのライフサイクル (onActive, onCommit, onDispose) についてメモ
割とすぐ忘れるので。
以下のようになっていた場合。
“`kotlin
@Composable
fun Screen() {
var selectedTab by remember>{ mutableStateOf(Tabs.Tab1) } println(“no wrap $selectedTab”)
onActive {
println(“onActive”)
onDispose {
println(“onDispose in onActive”)
}
}
onCommit {
println(“onCommit 1”)
onDispose {
println(“onDispose in onCommit 1”)
}
}
onCommit(selectedTab) {
println(“onCommit 2”)
Androidスライド削除のやり方
[RecyclerViewでスワイプの削除](https://qiita.com/karass/items/b0e09c81d413224d0010)
openFileInputでファイルを読み込むときのディレクトリの場所
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508704/aa2ae321-35f8-e459-977e-e5a4d404098e.png)
View -> Tool Windows -> Device File Explorer を開き、data/data/{パッケージ名}/files の中にあるファイルを探すみたい。PC側のパッケージ名直下のfilesフォルダを探してるかと思ったらAndroidエミュレータ内のfilesフォルダを探してるんですね。結構悩んだのでメモ。
Android studio:Kotlin:アプリの更新を行う
ビルド時に書き換えるのはバージョン情報
app\build.gradleファイルの
versioncode と versionnameを変える。
versioncodeは整数のみ。
versionnameは1.1的なやつ“`gradle:build.gradle
defaultConfig {
applicationId “com.shopping.noshoppingbag”
minSdkVersion 16
targetSdkVersion 30
versionCode 2 ←ここ
versionName “1.1” ←ここtestInstrumentationRunner “androidx.test.runner.AndroidJUnitRunner”
}
“`
ビルドするときは最初にビルドしたときの署名鍵が必要。android studioの上の
ビルド→署名済みバンドルまたはapkの作成→Android App Bundle![2.PNG]
Android studio:Kotlin:play store へアップロードするaapファイルの作成
android studioの上の
ビルド→署名済みバンドルまたはapkの作成
![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700383/69377aae-9ea6-eb6e-7b42-515ad691f888.png)
Android App Bundle→次へ
![2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700383/8862917b-81f1-8770-d5f6-e0bee510960d.png)
新規作成
![3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700383/4ba9558a-1627-a131-c9bb-67bb68b246fb.png)
キー保管パスはわかりやすいところを指定。
上のパスワードと下のパスワードを入れる(それぞれ違うやつ)
名前と苗字は入れる。
それ以外は空白でOK。
![4.P
Android studio:Kotlin:アプリのプロジェクト作成時にやること
1.プロジェクト作成時にパッケージ名をexampleから変更
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700383/36c449d5-b0a3-37eb-c2ed-f05b072e9716.png)パッケージ名のcom.exambple.myapplicationのexample部分。
exampleのままだとplay storeでひっかかるので変える。
com.test.applicationみたいな感じで。もしそのままでつくってしまったらリファクタリング。
手順は以下参考。
https://joh-sys.com/blog/2020/05/12/%E3%80%90android%E3%80%91%E3%80%8Ccom-example%E3%80%8D%E3%81%AF%E7%A6%81%E6%AD%A2%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E5%88%A5%E
Ethereumでガチャりたい!
## はじめに
**Ethereum** のゲーム **dApps** を眺めていると、トークンの売り方として「**セール形式**」が多い印象です。セール形式とは、運営さんが事前に発行しておいたトークン(キャラやカード)を販売する形式で、「**超強いキャラは値段を高く**」、「**そこそこの強さであれば安く**」といった売り方です。
![cut01](https://user-images.githubusercontent.com/13220051/100993600-f5331980-3598-11eb-9918-27d4000e7f58.png)
一方で、スマホアプリでよくあるのが「**ガチャ形式**」です。ガチャ形式とは、プレイヤーがガチャを引くたびにトークンが発行される形式で、トークンには内容に応じた確率が設定されます。
1回の値段は抑えめにしておき、「**超強いキャラは低確率で排出**」、「**そこそこの強さであれば高確率で排出**」といった売り方です。
![cut02](https://user-images.githubusercontent.com/13220
赤くなったKindle Fire HDを復活させる(未完)
## はじめに
先に言っておきますが、まだ解決していません。
## 問題の端末
Kindle Fire HD 32GB タブレット(第2世代)
https://developer.amazon.com/ja/docs/fire-tablets/ft-device-specifications-firehd-models.html?v=firehd7_20122012年に買った端末ですが、ここ数年はイベントなどでサイネージ端末として活躍していました。
## 障害内容
ある日電源を入れると真っ赤な画面が表示され起動しない状態になる。
すごく赤いです。
![kindle_fire_red_screen.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13477/811ce904-b87f-0aeb-c428-88e8444f6c8e.jpeg)## 復活への道
とりあえず工場出荷時に戻そうと色々
登山アプリについてメモ(2020年の年末)
#登山アプリ
昔はケータイのGPSになんて頼るなんて考えもしませんでしたが、もう位置情報などはスマホアプリで確認するような時代になりつつありますね。
なかなか登山アプリも発展してきて面白そうだなぁと思う今日この頃です。
自分のアプリ開発にも役に立ちそうなので、今現在の登山アプリについてそれぞれ軽くメモしておこうと思います。ヤマレコ
マップ表示及び山行記録ができます
Webサービスとしてのヤマレコは以前から山行記録サービスとして有名(お世話になりました)
無料だと地図は一度に2つまで
プレミアムプラン(年3400円または4900円)もあり
日記などSNSもあり
App内広告あり
地図はGoogle Map(国土地理院地図)など
(ヤマレコAPIもあります)YAMAP
マップ表示及び山行記録ができます
ライト層にも使いやすい、初心者に優しい?
シンプルで今風なデザイン(結構なお金かけてそう)
タイムラインとかフォロワーとかSNS的な面も多い
YAMAP STOREもありアウトドアグッズが買える
無料だと地図は一度に5つまで
プレミアムプラン(月480円ま
webエンジニアだった私が新規プロジェクトでAndroid開発メンバーになった話
この記事は[クラスター Advent Calendar 2020](https://qiita.com/advent-calendar/2020/cluster)の6日目の記事です。
昨日は ryoya_inoさんの『[2020年のふりかえりと2021年にむけて](https://note.com/inotch247/n/nd3f7a6e15f98)』でした。cluster社のエンジニア、わらび餅です。
今回はwebエンジニアだった私が今年Android開発にチャレンジした経験について書こうと思います。## 1. 『web専任』という不安
2019年1月、私が入社した当時のクラスター社にはwebの専任がおらず、機能実装や改善にもあまり手が回っていない状況でした。
「webは俺に任せろ。そのために来た。」という気持ちの私は、1年かけてwebにさまざまな変更を行ってきました。それについては[去年のAdvent Calenderの記事](https://blog.cluster.mu/2019/12/06/cluster-web-2019/) にまとめてあります。当時はやれるこ
Flutterの2DゲームエンジンFlameはドット絵ゲーム作成におすすめ?
本記事は[Flutter #2 Advent Calendar 2020の5日目](https://qiita.com/advent-calendar/2020/flutter-2)の記事です:santa:
# はじめに
2020年はゲームギアミクロ、ミニテトリス、ゲーム&ウォッチなど携帯ゲームがいっぱい発売されました!というわけでゲームギアミクロと同じくらいのサイズのAndroidスマホ、Jelly Pro向けにゲーム&ウォッチ風アプリを作ってみました。(上の大きく見えるのはPixel4です)
*Android*ListViewにカスタムレイアウトを使用してスクロールできることを確認・タップしてリストから値を取得する
# はじめに
こんにちは。今回は、カスタムレイアウトを使用してListViewを作成する際にハマった点を中心に、ListViewをスクロールできることを確認しつつ、ListViewのアイテムをタップして値を取得するところまで解説します。カスタムレイアウトを使ったListViewの作成では、Androidでデフォルトで用意されているレイアウトを使う際には発生しない、スクロールできないといったエラーが発生することがあります。また、ListViewを画面全体に配置しない場合(画面の先頭ではなく途中から配置する場合)、ListViewを画面全体に配置する時には発生しないエラーが発生することがあります。これらのエラーにハマった際の解決方法を明確にしておきます。以下は解決方法として間違っています。
– ScrollViewでListViewを囲うことにより、スクロールできるようにする
– Java側のコードで何とかしようとする# 前提
*Android Studio 4.0.1
*targetSdkVersion 29
*Google Pixel 3a XL# 完成イメージ
以下のよ
Firebaseのメッセージ受信からアプリ起動までの覚書
本記事は[Android Advent Calendar 2020](https://qiita.com/advent-calendar/2020/android)の2020/12/05分です。
PUSH通知受信のためにFirebaseを使うことが多いと思いますが、
私毎回業務でやるたびにアプリ起動でハマるので2020年で終えれるようこちらの記事を書かせていただきます。# サンプルプロジェクト
実務でのコードを使うことはできないので、類似のサンプルプロジェクトを作成しました。
[FirebaseSample](https://github.com/shinya-takano/FirebaseSample)
※google-servies.json はサーバにUPしていませんのでビルドはそのままだとできないです。Firebaseの導入〜メッセージ送信までは[公式ガイド](https://firebase.google.com/docs/cloud-messaging/android/client?hl=ja#kotlin+ktx)に丁寧に記載があります。
(本当ありがたいです
【Kotlin】setFragmentResultを用いた画面遷移
## setFragmentResultとは
フラグメント間でデータの受け渡しを行うときに使用する。
フラグメントBからフラグメントAにデータを返す場合は、フラグメントAに結果リスナーを設定します。“`kotlin
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Use the Kotlin extension in the fragment-ktx artifact
setResultListener(“requestKey”) { key, bundle ->
// We use a String here, but any type that can be put in a Bundle is supported
val result = bundle.getString(“bundleKey”)
// Do something with the result…