- 1. DroidKaigi2021セッション資料まとめ
- 2. emacs hy-mode
- 3. React Native + Expoで(iOS,Android)開発環境を構築する
- 4. SesameSDKをFlutterから触ってみて 〜前編〜
- 5. Android DIフレームワークのトレンドについて調査
- 6. @IntDefについて
- 7. AndroidでEditText以外のタップでキーボードを閉じる
- 8. 【Android】漫画の台詞はタテだから縦書きTextViewを作ってみた
- 9. 【書籍レビュー】基礎&応用力をしっかり育成! Androidアプリ開発の教科書 第2版 Java対応 なんちゃって開発者にならないための実践ハンズオン
- 10. Jetpack ComposeになってShapeがすごく簡単になった
- 11. 【Android】自動生成されるNavigation barの背景やラベルのcolorの変え方
- 12. Custom View で自身のサイズを元にサイズ変更を行う方法
- 13. Custom View にデフォルトの属性群を指定する方法
- 14. ZOZOのアプリのUIを再現しようの会 【お気に入りタブ編】その2
- 15. [Android]プロローグにはコンテンツを指定できません。というエラーを解決する方法について
- 16. 【Android】Qiita デイリー LGTM 数ランキング【自動更新】
- 17. 【Android】スレッド間通信 in Kotlin
- 18. 【Android+DataBinding】バインディング式のメソッド呼び出しでデフォルト引数は使えない
- 19. [Android]コピペでできる!でバージョンアップを検出しよう!!
- 20. RecylerViewの実装方法まとめ(その①)
DroidKaigi2021セッション資料まとめ
![スクリーンショット 2021-10-19 13.32.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188222/4a6f4d2d-a3b5-60f8-ea5e-dfbc4f67fb8a.png)
[DroidKaigi2021](https://droidkaigi.jp/2021/)登壇資料、スライドのまとめです。
Twitter等で見つけ次第掲載しますが、もし資料を見かけた方or資料を公開した登壇者の方がいらっしゃいましたら、コメント等でお声がけください。
スライドや資料のリンクが見つかった場合はタイトルにリンクをつけてありますので、タイトルがリンクになっていない場合はまだ資料が見つかっていないものになります。# Day 1
## [プロダクトレベルで必要になる Jetpack Compose テクニック](https://speakerdeck.com/yanzm/purodakutoreberudebi-yao-ninaru-jetpack-compose-tekunituku)
emacs hy-mode
Lisp の人の言質はだいたい典型的な特徴があり、自賛と懐古的な礼讚が7割入るので、9 割引で信用するとして、残りがよくわからないので、自分もそっちに入ってみるしかない。
—
Android で 64bit アーキテクチャの Arm CPU で common Lisp ぽいことをやろうとすると今のところ唯一 hy だけ方法がわかる。アプリでは CL REPL (ecl)が動くが。
https://www.lights-of-holiness.eu/cl-repl/blog.htm
termux では 32bit だと ecl が動くらしいが、64bit ではエラーになった。他にも debian や ubuntu をセットして、そこへビルドする等、実践しているという情報はあるが、Lisp 側に変更点がなくともホスト側が日々変更があり今日どのようにするのか調べて実践するのには数日間かかる(数十日でも、わからないまま)。
# hy lang
https://docs.hylang.org/en/master/
他の Lisp だと計算機科学のカリキュラムと理想というレールの
React Native + Expoで(iOS,Android)開発環境を構築する
弊社のサービス[Hapitas](https://apps.apple.com/jp/app/%E3%83%8F%E3%83%94%E3%82%BF%E3%82%B9-hapitas-w%E3%81%A7%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%8C%E8%B2%AF%E3%81%BE%E3%82%8B/id1475444626)のアプリ版はReact Nativeを用いて開発されています。インターンとして開発に携わっているのですがで正直環境がどのように動いているのか全く理解していなかったので、勉強としてまずは開発環境を構築したので備忘録としてまとめます。30分ほどあれば作れます。
# React Nativetとは
React Native(リアクト・ネイテイヴ)は、Facebookが作成したオープンソースのモバイルアプリケーションフレームワークです。開発者がネイティブプラットフォーム機能とともにReactを使用できるようにすることで、Android、iOSアプリケーションを開発するために使用されています。Web開発で用いられるReac
SesameSDKをFlutterから触ってみて 〜前編〜
まずは、公式セサミアプリでも基にされている[SesameSDKライブラリ](https://github.com/CANDY-HOUSE/SesameSDK_Android_with_DemoApp)を参考に調べて参ります。
`Gradle`というオープンソースのビルドシステムが使われている(Javaのjarファイル warファイルを作成してくれる)ので、インストールしてみます。言語は非常に`Java`に近いスクリプト言語である[Groovy](https://agency-star.co.jp/column/groovy) Javaと同じ感覚でスクリプトを書けます。“`
$ curl -s https://get.sdkman.io | bash
“`
こちらを実行して、“`
All done!Please open a new terminal, or run the following in the existing one:
source “/Users/XXXX/.sdkman/bin/sdkman-init.sh”
Then issue th
Android DIフレームワークのトレンドについて調査
Androidプロジェクトに新規参加することになり、
利用されているDependency Injection(以下、DI)について調査しました。プロジェクトで使われているDIがなぜ選択されたのか、
他との比較をした上で良い点、悪い点も把握するため調査した内容になります。# DIとは?
`依存性の注入`、`依存関係インジェクション` と表記されます。“`
依存関係インジェクション(DI)はプログラミングで広く使用されている手法で、Android 開発にも適しています。
DI の原則に従うことで、優れたアプリ アーキテクチャの土台を築くことができます。依存関係インジェクションを実装すると、次のようなメリットがもたらされます。
・コードを再利用できる
・リファクタリングが容易になる
・テストが容易になる
“`
引用:https://developer.android.com/training/dependency-injection?hl=ja# Android DI フレームワーク一覧
* ★Dagger
* ★Hilt
* ★Koin
* Kodein
* K
@IntDefについて
## 経緯
私はEnumクラスが大好きなのですが、この前初めてIntDefを触りました。
独自アノテーションに対して付与する・・・?
便利そうなので調べてみました。## IntDef(StringDef)とは
端的に言うと、Androidにおいて**Enumより軽く、型安全に定数を使用できるようになるアノテーション**のことです。Enumを使用した場合、1つのEunmにつき1.0~1.4 KB ほど増えることがあるそうです。
サイズの増加は可能な限り避けたいので、かなり有用な方法に思えます。([参考](https://developer.android.com/topic/performance/reduce-apk-size#remove-enums))## 使ってみる
とりあえずEnumのサンプルを。細かい部分は目を瞑ってください。“` Sample.java
public enum DayOfTheWeek {
SUNDAY,
MONDAY,
TUESDAY,
WEDNESD
AndroidでEditText以外のタップでキーボードを閉じる
## EditText以外のタップでキーボードを閉じたい
プラットフォームに関係なく、よくある要件ですね!
色々調べたのですが下記のようにしたら大体のレイアウトでカバーできそうだなって思ったので共有します### dispatchTouchEvent() を使う
`onTouchEvent()` を使う記事などが多くありますが、List系のレイアウトがあったりScrollViewが入ってると反応しないので `dispatchTouchEvent()` を使っておけばいいと思います。
あとは、スクロールのタッチアクションにも反応してしまうので、そこも対応が必要です。
タッチした箇所がEditTextだった場合は処理をしたくないので、タッチ領域がEditTextの表示領域かを判定する必要があります
“`kotlin
private var lastEventAction: Int? = nulloverride fun dispatchTouchEvent(event: MotionEvent?): Boolean {
// スクロール時のタップを無視させる
【Android】漫画の台詞はタテだから縦書きTextViewを作ってみた
##背景
自分も@tome_uraさんや@Nonato_Noteさんみたいな素敵なIT系マンガ描きたい!
でも筆が遅い……
そうだ! イラスト素材と会話文をぺたぺた貼るだけの四コマ作成Androidアプリを開発して時短しよう!
あ、縦書きTextViewが無い……##こんな縦書きTextViewが欲しい
レイアウトxmlに書いても使えるヤツ。
wrap_contentがいい。
普通のTextViewと同じパラメータ使いたいな。“`xml
【書籍レビュー】基礎&応用力をしっかり育成! Androidアプリ開発の教科書 第2版 Java対応 なんちゃって開発者にならないための実践ハンズオン #はじめに
今回はAndroidアプリ開発の参考書
『基礎&応用力をしっかり育成! Androidアプリ開発の教科書 第2版 Java対応 なんちゃって開発者にならないための実践ハンズオン』
をレビューしたいと思います。![51kvMrmhNTL._SX394_BO1,204,203,200_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1925070/2f7791a4-c6b8-4ae8-b67d-190d0c7afa2f.jpeg)
開発環境は「Android Studio」で「Java版」と「Kotlin版」があります。(僕はJava版を使いました)
なぜこの参考書のレビューをしたのかというと、シンプルに**「めちゃくちゃ分かりやすかった」**からです。実は一度、別の参考書でAndroidアプリ開発の勉強をしたのですが、難しくて挫折しました。それから半年ほど経った頃、ふと書店
Jetpack ComposeになってShapeがすごく簡単になった
Jetpack Composeになって、Viewの形状を変えるShape周りがすごく使いやすくなってました。
社内のLT会でした内容をQiitaにもまとめようと思います。https://docs.google.com/presentation/d/1FbiOuWVctnXz1bvRXuSrexm7qX9muE8CKrvnE6hvUv4/edit#slide=id.p
https://github.com/yasukotelin/JetpackComposeCustomShapeSamples
## 今までのAndroid Viewでは
例えばこういう形状のタグ的なものを作ろうと思ったとき、shapeのxmlリソースを用意してbackgroundに当てる必要がありました。
![unnamed.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/166629/485e6317-9738-ffd5-1ba3-4a73f27c207c.png)
“`shape_tag_background.xml
<
【Android】自動生成されるNavigation barの背景やラベルのcolorの変え方
android studio: 4.2.2
sdk version: 30# 変更前
自動生成で以下のようなNavigation barが作成されます。
色合いが微妙なのでこれを変えていきます。![Screenshot_2021-10-17-17-43-22-23_ba25f4753e85d4aec26bd28a3969eaa8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574173/d56a9287-6b63-dc6b-06a4-76ae5faedc22.png)
## Navigation barを設定している場所
このnavigation自体は以下のpathで記述されています。
app/src/main/res/navigation/nav_graph.xmlそしてfragemntごとの記述を見ると以下のようになっています
“`java
Custom View で自身のサイズを元にサイズ変更を行う方法
# ◆はじめに
Android の custom view にて、自身のサイズ変更を元に自身のサイズが変わる処理を行い、計算をすべて親クラスに丸投げするケースのメモです。# ◆ダメな例その1
“`kotlin
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
// super.onMeasure() が呼ばれてないので、サイズ計算ができておらず、目的の処理が行えない。
doSomethingWithSizeModification()super.onMeasure(widthMeasureSpec, heightMeasureSpec)
}
“`# ◆ダメな例その2
“`kotlin
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
// super.onMeasure() により、現状のサイズが計算される。
super.onMeasure
Custom View にデフォルトの属性群を指定する方法
# ◆はじめに
特定の custom view すべてに適用されるデフォルトの属性値を指定する方法のメモです。
# ◆具体的なケース
例えば `MyTextView` という custom view を作った際に、以下のようにデフォルトのスタイルを毎回差し込む必要があるとします。
“`xml
“`この場合、custom view の恩恵が薄くなってしまうし、style の設定し忘れをコンパイル時に検出できなかったりして、とっても残念な感じです。
ということで、デフォルト属性を指定したいよねという話です。
※ちなみに、カスタムの属性を指定する方法は簡単で、attrs.xml に属性を定義して、custom view 側のコンストラクタ
ZOZOのアプリのUIを再現しようの会 【お気に入りタブ編】その2
##前回の記事
https://qiita.com/nemo-855/items/3707e095c000f89ddb62##はじめに
お気に入り画面のアイテムタブを作りました!そこ周りの実装について書いていきます!時系列的には先に新着タブを作っているのですが、先にこちらを記事にしました!##今回の完成像
アディパンしか扱ってないZOZO pic.twitter.com/2QhvDf1upm
— ねも (@nemo_855) October 15, 2021