- 1. BitriseにContributeをする
- 2. AndroidStudio[Material Design]を導入
- 3. 【Android】EditTextのソフトウェアキーボードのボタンを変更する方法
- 4. Android開発基礎
- 5. MSAL(Microsoft Authentication Library)を使用したSSOにおけるアクセストークンの有効期限について
- 6. 【ionic】面倒臭がりでもできる、アラーム機能
- 7. LinuxからAndroid(その逆も)へバックアップ
- 8. RxJavaをAndroidのLifecycleを考慮していい感じに使いたい
- 9. 100均防犯ブザー+Atom lite+androidで着信通知デバイスを作る
- 10. 【Android / Kotlin】双方向 DataBinding + Clickイベント / サンプルアプリ実装
- 11. Kotlin Multiplatform Mobileで作ったプロジェクトで実機ビルドができない場合の対応
- 12. 【iOS/Android】ネイティブアプリ開発をしたい人への上達マップ【初心者】
- 13. DIライブラリ「Hilt」のセットアップ&使い方(Kotlin)
- 14. 【Android / Kotlin】プロジェクトでアノテーション(@)を使えるようにする
- 15. DialogFragmentの背景色を透明 or 指定する
- 16. Gradleプラグインを適用するスマートな書き方
- 17. Googleマップのナビ音声を茜ちゃんに変える
- 18. Flutterとはなんぞや。〜html、cssを見たくないけどモダンなUI組みたいあなたへ〜
- 19. 【Android / Java】双方向 DataBinding + Clickイベント / サンプルアプリ実装
- 20. 【Android】ソフトウェアキーボードで悩むときにみる記事【EditText】
BitriseにContributeをする
# BitriseにContribute
「[Get Info on Android App Bundle](https://www.bitrise.io/integrations/steps/get-info-on-android-app-bundle)」というIntegrationをBitriseにContributeしました。Android App Bundle(.aab)から情報を抽出できます。
![Get Info on Android App Bundle](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125724/eb4e429f-52e8-4ac9-2f6a-69a06c583716.png)# 背景
Bitriseでは、APKから情報を抽出するステップはいくつか公開されているものの、Android App Bundle(.aab)からパッケージ名やバージョンを抽出するワークフローステップが見当たらなかったため、自作のスクリプトを作成して抽出していました。
主にFirebase App Di
AndroidStudio[Material Design]を導入
<記録用>
AndroidStudioへMaterialDesignを入れてみる。参考サイト
https://material.io/develop/android/docs/getting-started
【Android】EditTextのソフトウェアキーボードのボタンを変更する方法
# 想定読者
Android開発経験1年未満でUI作成を担当することになった方# ソフトウェアキーボードのボタンを変更する
“`
android:imeOptions=”actionSearch”
“`
とする虫眼鏡になります!では他にはどのようなボタンに変更されるでしょうか?
答えはここにあります![TextView | Android デベロッパー | Android Developers](https://developer.android.com/reference/android/widget/TextView?hl=ja#attr_android:imeOptions)
# まとめ
公式ドキュメント最高!
ただ、そこまでたどり着くのが難しいと思うのでこの記事を道しるべとしてください!
Android開発基礎
## 1. はじめに
Android Studioで書籍管理アプリを作成しましたので、
その際に学んだ技術を備忘録として、残しておきます。
*正しくない内容も含まれているかもしれませんので、その際はご指摘頂きたく、お願いします。## 2.環境
MacOS Catalina 10.15.7
Android Studio 4.1.1## 3. 学んだこと一覧
1. 画面遷移(Activity, Fragment)
2. Action Bar関連
3.***
### 1. 画面遷移
画面の遷移と言うより、画面の呼び出しが正しい表現。– Activity呼び出し
“`kotlin:LoginActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)// signUpBtnをclickしてSignUpActivityを呼び出し。
// 呼び出し後、finish()することで、LoginActivityを終了さ
MSAL(Microsoft Authentication Library)を使用したSSOにおけるアクセストークンの有効期限について
# 背景
上司いわく、MSALを使用してSSOを行うと、アクセストークンの有効期限が1時間だから
1時間毎に再認証が必要で、スマホ使っている人がアカウントを再選択する必要があるらしい。個人的には、それマジ?その仕様だと実際使いづらいと思うしなんかいい感じに更新してくれるんじゃないの?
って思ったんですけど、ちゃんと調べた事は無かったので調査しました。# 結論
1時間毎に再認証する必要はない。
ドキュメントから、デフォルト90日間連続して操作しなかった場合には再選択が必要になる。# ドキュメント調査
以下のリファレンスには期限切れが近いトークンを更新できると記載がある。
https://docs.microsoft.com/ja-jp/azure/active-directory/develop/msal-acquire-cache-tokens#acquiring-tokens-silently-from-the-cache
> また、期限切れが近いトークンを更新することもできます (トークン キャッシュには更新トークンも含まれるため)。また、以下のページではトークンの
【ionic】面倒臭がりでもできる、アラーム機能
時計やスケジュール張のアプリはもちろんですが、漫画アプリやコミュニケーションツールなどなど。通知機能はいろんなスマホアプリで活用されています。
今回はその中のアラーム通知をスマホアプリで実装する方法を「[ionic](https://ionicframework.com/jp/docs/intro)」というフレームワークを用いて紹介させていただきたいと思います。
# アラーム設定方法
基本的にはアラームの方法は2種類あります。* プッシュ通知(リモート通知)
オンラインでの通知をすることができます。例えば、アプリ提供側から新着情報をユーザに提供したい場合はこれを使って通知を送ることができます。* ローカル通知
プッシュ通知とは逆にオフラインの機能になります。ユーザが自分で時間を設定して、その時間に通知を受け取りたい場合に使えます。一般的にアラームとなるとローカル通知をイメージされる方が多いと思います。今回はそのローカルでの通知を使ったアラーム機能を紹介します。
# ionic公式より
ionicの公式ページに[Local Notification](https://
LinuxからAndroid(その逆も)へバックアップ
Alpineでも日本語入力Mozcが利用可能であることは確認できました。
現在は、Arch Linuxベースの[Manjaro Linux](https://manjaro.org/)(xfce)に落ち着いています。
グラフィカルなインストーラー)(Calamares?)でインストール先のパーティションも手動で選べます。
日本語環境も整えやすいです。個人的にはブラウザのfirefoxがあれば、Webは一通り見れるし、動画も再生できる。Webメールのgmailも見れる。
Yahooのニュースのライブ動画もUser Agent Switcherのアドオン入れて、Windowsと同じですよ宣言しておけば、再生できます。バックアップに使うアプリ(ソフトウェア)は、
syncthing
を選択しました。P2Pらしい。無料のクラウドストレージには限度がある。クラウドまでは必要ない。アクセスするのは重たいし。
バックアップも無意識にLinuxとAndroidで同期(Sync)してくれたら、助かる。そういったニーズのアプリです。
私の場合には、スマホに取り付けたSDカードにバックアップでき
RxJavaをAndroidのLifecycleを考慮していい感じに使いたい
RxJavaをAndroid上で扱うに当たって、LifecycleとかLiveDataとかと併せて使うと便利そうだよね。という何番煎じだか分からないネタです。
# Disposableをライフサイクルに合わせて自動的にdisposeしたい
AndroidでRxJava/RxKotlinを使う場合、以下のようにonDestoryなどでDisposableのdispose処理をしないといけないのが面倒ですね。
“`kotlin
hogeObserver
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({}, {})
.addTo(compositeDisposable)
…
override fun onDestroy() {
compositeDisposable.dispose()
}
“`しかし、Lifecycle系の機能を使えば自動化できそうだよねーと誰もが考えるでしょう。
安直にはこんなところでしょうか?
100均防犯ブザー+Atom lite+androidで着信通知デバイスを作る
# ご注意
本記事にはハードウェアの改造が含まれています。またソフトウェアの実装においてセキュリティーへの考慮はほとんどしていません。なので真似して作る際のリスクは各人の判断でお願いします。
ソースコードのライセンスはMITとします。![PXL_20210122_072239759.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58150/b319e0c8-999e-0266-e5d2-2ff6e707afaa.jpeg)
# 動機
実家の父親いわく、母の耳が弱くなってスマホの着信に気づかないことが多くなって困っているとのこと。着信がわかりやすくなる機械ってないの?
# 調べてみた
有線電話なら
https://www.yodobashi.com/product/100000001002096313/
みたいな「リンガー」というものが割と昔からある。
しかしスマホでは1つしか見つけられなかった。# ざっくり
【Android / Kotlin】双方向 DataBinding + Clickイベント / サンプルアプリ実装
# はじめに
[こちら](https://qiita.com/tkmd35/items/ed2ae410e875aba165f7)の記事にて Java で同様のサンプルアプリを作成している。
今回はその Kotlin バージョンである。## 双方向データバインディングとは(一方向との違い)
– 一方行データバインディング
– ViewModel などの中でデータを変更 → View に反映
– 双方向データバインディング
– ViewModel などの中でデータを変更 → View に反映
– ユーザが View でデータを変更 → ViewModel にデータの変更が反映(通知)一方向が ViewModel などのロジックファイルから View 側への通知だけであるのに対し、
双方向ではユーザがアプリのフォームなどに値を入力したときなどに、ロジックファイルの方にも値の入力(変更)が通知される。と言うものである。なお一方向データバインディングについては 言語はJavaですが[こちら](https://qiita.com/tkmd35/items/f5cc228
Kotlin Multiplatform Mobileで作ったプロジェクトで実機ビルドができない場合の対応
# 概要
プラグイン`Kotlin Multiplatform Mobile`を利用してプロジェクトを作った際、実機ビルドができないとなった時の対応。– [Kotlin Multiplatform Mobile](https://plugins.jetbrains.com/plugin/14936-kotlin-multiplatform-mobile)
エラー内容としては下記。
“`
${Path}/iosApp.xcodeproj Building for iOS Simulator, but the linked and embedded framework ‘shared.framework’ was built for iOS.
“`# 原因
AndroidとiOS側で共有されている’shared.framework’がiOS Simulator用にビルドされていて、実機では使えないという話。FWは以下のような処理を経て生成される。
具体的にはConfigurationを基に各ターゲット向けに生成されたFWをコピーし、`xcode-frameworks`
【iOS/Android】ネイティブアプリ開発をしたい人への上達マップ【初心者】
## 想定読者:これからネイティブアプリを開発したい人
想定読者に向けて、上達の全体像をお伝えします。
新人や駆け出しエンジニアの方が自分がどのあたりにいるか把握でき
モチベーションアップになれば幸いです。## まずは入門書の前半くらい
画面のレイアウトを作れるようになる
数字や文字列を表示できるようになる
ボタンを作る
ボタンを押したら、数字が増えたり減ったりするカウンターを作れるようになる
画面遷移ができるようになる
画面遷移の時に値を渡せるようになる## 入門書の後半くらい
値を保存できるようになる。
値を呼び出せるようになる。
データベースにデータを保存できるようになる。
データベースからデータを読み出せるようになる。色や動きなどを実装できるようになる
## 結構大変になってくる
通信処理ができるようになる
エラーハンドリングができるようになる## お、そろそろ実務の駆け出しくらいには行けるか?
綺麗にレイアウトを組めるようになる
(AutoLayoutなど)
デザインガイドラインを理解する
非同期通信ができるようになるアプリの審査に提出できる
権限周りが
DIライブラリ「Hilt」のセットアップ&使い方(Kotlin)
## はじめに
本記事は [Swift/Kotlin愛好会 Advent Calendar 2020](https://qiita.com/advent-calendar/2020/love_swift_kotlin) の21日目の記事です。
空いているので埋めました。Hiltのセットアップ方法と使い方を紹介します。
## 「Hilt」とは?
Android向けのDIライブラリです。
Daggerの上に構築されており、DaggerコンポーネントやAndroidクラスを自動的に注入するコードを生成するため、Daggerを使うよりボイラープレートが減ります。
## 環境
– OS:macOS Big Sur 11.1
– Android Studio:4.1.2
– Kotlin:1.4.10
– Gradle:6.8
– Gradle plugin:4.1.2
– Hilt:2.31-alpha## セットアップ
### kaptのセットアップ
Hiltはアノテーションを使ってコードを生成するため、kaptが必要です。
以下の記事を参考にセットアップしてください。
【Android / Kotlin】プロジェクトでアノテーション(@)を使えるようにする
# はじめに
Kotlin でデータバインディングを使うために、**kapt** の導入が必要であることを知った。
具体的に言うと自分の場合は
“@get:Bindable ~“と言う記述をしても“BRクラス“に監視変数が生成されずにつまずきました。調べた結果 **kapt** の導入に行き着きました。# なぜ必要なのか
**kapt** とは kotlin-annotation-processing-tools の略であり、Kotlin プロジェクトでもアノテーション(@)を使い自動コード生成ができるようにするもの。
つまり、Dagger や DataBinding などを利用する際に導入が必要となるようである。# 環境
– Android Studio: 4.1.1
– Build #AI-201.8743.12.41.6953283, built on November 5, 2020
– Runtime version: 1.8.0_242-release-1644-b3-6915495 x86_64
– VM: OpenJDK 64-Bit Server VM
DialogFragmentの背景色を透明 or 指定する
## やりたい事
マテリアルデザイン化したDialogFragmentの背景のグレー(スクリム)を透明 or 色を指定したい
スクリムとは何か?はMaterial Designガイドラインで説明されている
https://material.io/components/dialogs#anatomy## 完成形
## 実装コード
やり方は style.xml or コードの2通りがある。
### style パターン
“`xml:style.xml
<
Gradleプラグインを適用するスマートな書き方
`app/build.gradle`
“`groovy:before
apply plugin: ‘com.android.application’
apply plugin: ‘kotlin-android’
apply plugin: ‘kotlin-android-extensions’
“`“`groovy:after
plugins {
id ‘com.android.application’
id ‘kotlin-android’
id ‘kotlin-android-extensions’
}
“`## 参考リンク
– [Using Gradle Plugins](https://docs.gradle.org/current/userguide/plugins.html)
Googleマップのナビ音声を茜ちゃんに変える
## デモ
アカネチャンカワイイヤッター
そんな高度なことはしてないですが、
ブログとか持ってなくて、他に書く場所もないのでここに書かせてください。## ひつようなもの
* Android端末
* Andorid Google Map アプリ
* Andoroid ナビボイスチェンジャー アプリ
* https://play.google.com/store/apps/details?id=jp.nekoteki.android.navivoicechanger&hl=ja&gl=US
* PC (Windows)
* PC ZIP圧縮ソフト(WinRARなど)
* Android PC データ転送用ケーブル
* **【重要】茜ちゃんのめっちゃかわいい音声ファイル一式**
* (ナビボイスチェンジャーでDLします)OPPO Reno 10X Zoom (Android 10)
Google Map Ver.10.58.2 で動作確認済です
iPhoneとかでも同じ方法でできると思いますが、動作未確認です#
Flutterとはなんぞや。〜html、cssを見たくないけどモダンなUI組みたいあなたへ〜
お久しぶりです!やびーくでっす! :sunny:
本日は、FlutterでiOSとAndroidのアプリを開発する方法についてお話しします!# 目次
+ Flutterとは
+ プログラムの一元管理
+ HTML、CSSを意識しないモダンなUI構築
+ 豊富なライブラリとホットリロード
+ 実際に体験したい方へ
+ 開発チームメンバーの声
+ 参照記事# Flutterとは
FlutterはiOSとAndroid両方で動作するスマホアプリを作成するためのDart言語のフレームワークです!
一部ハードウェアに依存するコードはそれぞれjavaやobject-cなどで記載する必要がありますが、
プログラムで共通化できる部分は共通化することができるので、iOSとAndroid両方のアプリケーションを作る場合のプログラムソースをほとんど一元化することができます。## プログラムの一元管理
画像を元に説明します。
※あくまで触ってみて感じたイメージなので参考までに!
![ 2021-01-12 19.31.38.png](ht
【Android / Java】双方向 DataBinding + Clickイベント / サンプルアプリ実装
# はじめに
実務案件で DataBinding を利用している。
なかなか難しい。そこで双方向 DataBinding を用いたサンプルアプリを作成しながら DataBinding について学んだ。※ 今回は Java ですが、 ~~Kotlin でも同様のものを作成してみようと思っております。その時は改めて投稿します~~。
Kotlin バージョンも作成して記事にしましたのでご覧いただければ幸いです!!↓↓
[【Android / Kotlin】双方向 DataBinding + Clickイベント / サンプルアプリ実装](https://qiita.com/tkmd35/items/516283b4e43fd5ff7a7c)## 双方向データバインディングとは(一方向との違い)
– 一方行データバインディング
– ViewModel などの中でデータを変更 → View に反映
– 双方向データバインディング
– ViewModel などの中でデータを変更 → View に反映
– ユーザが View でデータを変更 → ViewModel にデータの変
【Android】ソフトウェアキーボードで悩むときにみる記事【EditText】
# EditTextがソフトウェアキーボードで隠れるのを防ぎたい
これを使えば一発で解決するかもしれません!
android:windowSoftInputMode=”adjustPan
android:windowSoftInputMode=”adjustResize|stateAlwaysHidden”公式です
[入力方法の表示の処理 | Android デベロッパー | Android Developers](https://developer.android.com/training/keyboard-input/visibility?hl=ja)いい感じの記事です
[EditTextに入力中の文字がソフトキーボードで隠れるのを防ぎたい | by Keisuke Kawajiri | URL Memo | Medium](https://medium.com/url-memo/edittext-hidden-by-softkeybord-5406484db3ec)オーバーフローでも同じようなことが書かれてます!
[resize – android:w