- 1. Termuxの意外と知らない日本語入力方法、特殊キータブの項目を増やす小技
- 2. 2020年10月版ActivityResultAPIを使ってみた。
- 3. 【Android】WebViewで、mailto:とかtel:を開けずに詰まった話
- 4. なぜAndroidエンジニアは少ないのか
- 5. Androidアプリアイコン設定
- 6. 【Qiita】Qiitaにスマホから新規投稿する方法
- 7. Android Studio 4.1に上げたらParameter ‘directory’ is not a directoryでBuildできない
- 8. Koinを使ってActivity/Fragment間で共有するViewModelをDIする
- 9. Android SIP API : keep alive の動作について
- 10. Android Navigation ComponentのNested Graphのargumentをxmlの1階層目に置く理由を調べてみた
- 11. Android Navigation Componentのツールバーのタイトル挿入機能の内部実装について調べてみた
- 12. モダンなアニメーションを実装してみた
- 13. Github ActionsでAndroidのビルドをする
- 14. 巨大な aar を分割し、ビルド時に復元する
- 15. 【2020年10月】Retrofitで Multipart アップロードする時に参考になる記事まとめ
- 16. 【フロント・ネイティブエンジニア必見】マイクロインタラクションの参考になるサイト7選
- 17. 【Smart Cast】Android Kotlinでよくつかうnullの対処法
- 18. 【Android】EditTextのハンドル部分の色変更
- 19. 2. Android学習 Layout、View編
- 20. 1. Android学習 AndroidStudioのインストール〜HelloWorld編
Termuxの意外と知らない日本語入力方法、特殊キータブの項目を増やす小技
#Termuxで日本語入力をする方法
![Screenshot_20200929-005905_Termux.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747802/33f5dad4-5cbe-8ed0-067c-29b334e53093.jpeg)
この方法はキーボードアプリに依存しません。従ってどのキーボードアプリを使っていても日本語入力が可能です。
やり方は簡単。下の特殊キータブの部分を左にスワイプするだけです。
でも意外とこういうの見落としがちですよね。# 特殊キータブの項目を増やす方法
このように、左右の方向キーなどを追加する方法を紹介します。
![Screenshot_20200929-001020_Termux.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747802/26eefc40-3018-79be-a1bb-fbfb20797d1d.jpeg)### 1)テキストエディタをインス
2020年10月版ActivityResultAPIを使ってみた。
kotlinやandroidxの勉強も兼ねて、以前作った自作androidアプリケーションを一から作り直しているんですが、`Activity#startActivityForResult`は代わりにActivityResultAPIを使う事を薦められているとの事。
* [アクティビティからの結果の取得](https://developer.android.com/training/basics/intents/result)
いきなり使うのはためらうので、まずはテストプロジェクトで試してみましたが、まぁ、何ていうかその…。
**トラブル解決に自信があるなら別にいいけど、そうでないならあと1年は様子見でいいよ。**
## テストしてみる。
とりあえずテストした結果を書いておきます。
まず、「`build.gradle`」に依存関係を書きます。
“`
dependencies {
implementation “androidx.activity:activity:1.2.0-alpha08”
implementation “androidx.activity:acti
【Android】WebViewで、mailto:とかtel:を開けずに詰まった話
# 【Android】WebViewで、mailtoとかtelを開けずに詰まった話
AndroidのWebViewで、WebView内のリンクをタップした時に、mailto:やtel:だと、schemeに対応していないというメッセージが表示されて、電話アプリやメーラーが起動できないで詰まってました。## 参考
* [公式ドキュメント](https://developer.android.com/guide/webapps/webview?hl=ja#HandlingNavigation)
* こちらを読めば、理解が深まるかと思います。## 原因と対策
* 原因
* WebViewに対して、setWebViewClientをだけをしていたので、mailto:などのURLをWebViewでロードされるようになっていた。
* そもそもWebViewは、httpリソースを表示するようなので、mailto:やtel:などのURLスキームに対応していないみたい…(ドキュメントで明記されていたわけではないです。)* 対策
* WebViewClientに、shouldO
なぜAndroidエンジニアは少ないのか
# はじめに
まずはこちらのツイートをご覧ください
(駆け出しエンジニアのみなさん、モバイル開発は結構穴場ですよ…
今のところはかなり需要ありますし、供給が足りてないのでかなり狙い目ですよ…
とくにAndroidエンジニアは人足りてないので、狙い目ですよ…
Kotlin楽しいですよ…
みなさん、Android始めませんか?)— どすこい@Android Engineer (@dosukoi_android) October 12, 2020
Androidアプリアイコン設定
http://androidstudio.hatenablog.com/entry/2014/07/23/111303
【Qiita】Qiitaにスマホから新規投稿する方法
# 概要
スマートフォンからQiitaにアクセスした場合、リンク経由で新規投稿画面に辿り着けない(多分)ため解決手法を記載します。* 下図の通り、新規投稿画面へのリンクなどは見当たらない。(デスクトップモードでも同様)
![8C454D6D-65BD-4F79-ACF8-515E3AD29192.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670024/b5724f00-c9ed-d712-c4de-c6cb9d1f755c.png)# 再現環境
* iPhoneXR/iOS14/Safari
* SOV42(Xperia8)/Android10/Chrome# 結論
下記URLに直接アクセスすることで新規投稿画面が開きます。“`html:URL
https://qiita.com/drafts/new
“`
* 新規投稿画面。
![3B6C0F25-E0EA-4F6E-879C-E76CFCCE6E51.png](https://qiita-image-store.s3.ap-n
Android Studio 4.1に上げたらParameter ‘directory’ is not a directoryでBuildできない
pluginのアップデートがあるよ〜って出たのでアップデートしたらエミュレータへのinstallに失敗するようになって、試行錯誤ののち4.1以上じゃないと使えないplugin入れちゃったみたいで、勢いでAndroid Studioも4.1にしたら、
> Execution failed for task ‘:app:dataBindingGenBaseClassesHogeDebug’.
> Parameter ‘directory’ is not a directory: /Users/ibuse/Documents/workspace/Fuga/app/build/intermediates/data_binding_dependency_artifacts/hogeDebugですって。
cleanしてrebuildしても変化なし
Invalidate Caches/Restart…効果なし![スクリーンショット 2020-10-13 18.49.46(2).png](https://qiita-image-store.s3.ap-northeast-1.amazon
Koinを使ってActivity/Fragment間で共有するViewModelをDIする
– build.gradle
“`kotlin
buildscript {
ext.kotlin_version = ‘1.4.10’
ext.koin_version = ‘2.1.6’
repositories {
google()
jcenter()
}
dependencies {
classpath ‘com.android.tools.build:gradle:4.0.2’
classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version”
classpath “org.koin:koin-gradle-plugin:$koin_version”
}
}
“`– app/build.gradle
“`kotlin
dependencies {
implementation “org.koin:koin-android:$koin_version”
Android SIP API : keep alive の動作について
SipProfile.getSendKeepAlive は、keep alive を行うかどうかを取得します。
keep alive について、リファレンスでは以下のようにあるだけです。
[SipProfile getSendKeepAlive](https://developer.android.com/reference/android/net/sip/SipProfile#getSendKeepAlive())
> the flag of sending SIP keep-alive messages[SipProfile.Builder setSendKeepAlive](https://developer.android.com/reference/android/net/sip/SipProfile.Builder#setSendKeepAlive(boolean))
> boolean:true if sending keep-alive message is required, false otherwise以下も、keep alive の記述はありま
Android Navigation ComponentのNested Graphのargumentをxmlの1階層目に置く理由を調べてみた
## NestedGraphに値を渡す方法は2パターンあるらしい。。
NavigationComponentを使いはじめの頃、
画面遷移図がややこしくなってきた時にレイアウトxmlと同様にincludeできることを知って、
startDestinationに指定されたfragmentタグの中にargmentを置いてみて動かなかったことがあると思いますが、
[[参考リンク]](https://medium.com/@star_zero/nested-navigation%E3%81%A8safeargs-8f259ab4fbdd) によると別ファイルか同一ファイル内かで書き方が別れてしまうらしい。。。## なぜこんなにも覚えづらい実装なんだろう。。 :thinking_face:
脳死で覚えるのもいいのですが、複雑な画面遷移ロジックのタスクが2〜3ヶ月来ない間に忘れてしまいそうなので、
何故こんなことになってしまったのかをきちんと内部実装から確認してみることにしました。## まずxmlからインスタンスに変換している部分を探してみる。。。
レイアウトxmlを使う時には皆さまお
Android Navigation Componentのツールバーのタイトル挿入機能の内部実装について調べてみた
# ToolBarにsetTitle時に変数を挿入できる。。じゃあ変数以外の部分の多言語化は?
実際に挿入している箇所は下記のコードブロックに抜き出してある通り、
labelというCharSequence型の変数に
`Pattern fillInPattern = Pattern.compile(“\\{(.+?)\\}”);`の
正規表現にマッチする文字が無くなるまでループを回して、
`StringBuffer title = new StringBuffer();`に連結していき
最終的な文字列を`setTitle(title);`しています。“`Java
CharSequence label = destination.getLabel();
if (!TextUtils.isEmpty(label)) {
// Fill in the data pattern with the args to build a valid URI
StringBuffer title = new StringBuffer();
Pattern fillInPatt
モダンなアニメーションを実装してみた
# はじめに
現在のモバイル開発においてモダンなアニメーションはなくてはならないものです。
画面遷移の際、共通要素が途切れてしまうとユーザーが困惑してしまうことがあります。一覧画面から詳細画面へ遷移する際に共通要素を途切れさせないように表示することで実際にユーザーがUIに手を触れているような感覚になります。
以下の動画の通りです。
— どすこい@Android Engineer (@dosukoi_android) September 25, 2020