- 1. Ionic Vue のアプリをスマホ(Android)で実行する(Windows 10)
- 2. flutter実行時Android Emulator上で起きるエラー”Error connecting to the service protocol: failed to connect to http://127.0.0.1:1029/89AGRYqn_pA=/”の解決法
- 3. 【2020年版】FlutterのHelloWorldをAndroidでやってみる
- 4. 【Android】Context って何??
- 5. 非推奨のAPIを使用またはオーバーライドしています
- 6. Kotlinアプリ開発はじめます
- 7. (Android) DataBindingを使って静的テキストを表示させてみる
- 8. RadioGroupを使ったRadioButtonの双方向データバインディング
- 9. 僕たちはどのようにしてViewModelに通知すべきなのか
- 10. managed Google Playを利用している他組織へアプリの限定公開
- 11. AndroidのChromeでリンクを押した時につく、青色を消す。
- 12. 【Android】RecyclerView で無限スクロールを実装する
- 13. Kotlin の Coroutine で suspend 関数を理解する
- 14. KotlinでRoomデータベース
- 15. [Jetpack Compose] 1.0.0-alpha09から変わったこと。
- 16. 【Dart】Mapのvalueを使ってソートする
- 17. 【Android】MVVMをなんとなく理解した時の備忘録
- 18. AndroidAppLinksでアプリを開く
- 19. 【Flutter】遭遇したエラー&&解決策まとめ②
- 20. 【Android】ラジオボタンを追加する方法
Ionic Vue のアプリをスマホ(Android)で実行する(Windows 10)
Ionic(知らないのでさっき調べた)、Vue.js(チョットサワッタコトアル)、TypeScript(Java とかみたいなものでしょ?)レベルの人が Ionic Vue で作成した適当なアプリをスマホ(Android)で動かすまでの流れです。
Ionic は今までWebアプリを作成してたような感じでデスクトップアプリやモバイルアプリを作成することができるフレームワークです。例えば Vue.js でWebアプリもデスクトップアプリもモバイルアプリも作成できます。
2020年10月に Ionic Framework の Vue.js 版である Ionic Vue がリリースされました。
[Ionic Vue](https://ionicframework.com/jp/docs/vue/overview)
#1. 開発環境
Windows 10
Node.js 12.16.1
Android Studio 4.1.1
実機のスマホ:Android 10#2. 手順
##2.1. Node.js をインストール
Node.js のサイトからダウンロードしてインストールします
flutter実行時Android Emulator上で起きるエラー”Error connecting to the service protocol: failed to connect to http://127.0.0.1:1029/89AGRYqn_pA=/”の解決法
flutterが最近熱いらしいので、Androidエミュレータ上でサンプルプロジェクトで遊んでみようと思ったところ、
“`
Error connecting to the service protocol: failed to connect to http://127.0.0.1:1029/89AGRYqn_pA=/
“`
こんなエラーが出て長時間詰まってしまいました。Stack Overflowでも多くの人が同じ問題に陥ってるっぽいです。備忘録のために、試したけど効果がなかった方法と、エラーを回避できた解決法を書いていきます。ちなみに自分の環境はこんな感じです↓
IDE: Visual Studio Code
OS: mac OS Catalina
Android Emulator: Pixel 2 API 29#試したけどダメだった方法
### 環境変数にexport NO_PROXY=localhost,127.0.0.1を追加
これで直ったという記事がありましたが、自分の場合は試しても直りませんでした。
### IDE再起動、エミュレータ再起動、flutter
【2020年版】FlutterのHelloWorldをAndroidでやってみる
先日iOSシミュレータでFlutterアプリのHelloWorldをしたので、今回はAndroid StudioでHelloWorldしてみます。
## Android Studioのアップデート
僕のAndroid Studioがばーバージョン3.3と古かったので最新にアップデートします。
Eventsをクリック。
`update`をクリック。
# はじめに
Contextについて自分なりに調べて学んだので記事に残します。きっかけとして、
Android開発をしていて、何も考えずにContextをメソッドの引数に渡しまくっていたところ、リードエンジニアにこのようなレビューを受けたことがある。
>Contextの過剰摂取には気をつけましょう。
いつの間にか抜け出せなくなっていずれ手のつけようがなくなってしまいます。
引数にContextを追加したら負けぐらいの気持ちでContextを引数に追加しないことを意識したほうが良いです。そこで「Contextって何??」っと思って色々調べた。
# そもそも Context とは??
#### 日本語の意味的なContext
>(文章の)前後関係、文脈、脈絡、背景、状況、環境などと出てくる
#### プログラミングにおけるContext
こちらのサイトから抜粋
http://e-words.jp/w/%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88.html>プログラミングの分野でも、同じコード記述やプログラム
非推奨のAPIを使用またはオーバーライドしています
#何が問題か
android環境下でflutter runしたら
「非推奨のAPIを使用またはオーバーライドしています」となった。#解決策
minSdkVersion を21から23に変更
Kotlinアプリ開発はじめます
####~目次~
[1.はじめに](#1.はじめに)
[2.概要](#2.概要)
[3.開発環境](#3.開発環境)##1.はじめに
はじめまして、たけしです。
KotlinでAndroidアプリ開発を始めました。
プログラミングの学習は趣味で少しばかりしていましたがアプリ開発ははじめてです。
よろしくお願いします:)##2.概要
AndroidStudioで開発を始めたのですが、開始早々行き詰ってばかりです。
(調べても出てこないorでてきても英語ばかり、、)
そんなわけで同じ悩みを持つ方を減らすため、また備忘録としても僕が直面した問題を中心に記事を投稿していけたらなと思っております。Webで何かを投稿するのはこれが初めてなので、文章も拙いかもしれませんが、温かい目で見守っていただけたら嬉しいです。
(改善点などコメントしていただけたら嬉しいです!)##3.開発環境
何のせたらいいかわからないので現在の開発環境をのせておきます。– Surface Pro6(Windows10)
– Android Studio(4.1)(開発環境も何書けばいいのかわから
(Android) DataBindingを使って静的テキストを表示させてみる
## はじめに
DataBindingの勉強として記録しておく。
今回はテキストを表示するだけの初歩中の初歩。
## DataBindingの導入
appのgradleに以下を追加“`java:build.gradle
android {
dataBinding {
enabled = true
}
}
“`
## バインドするクラス(User)を用意“`java:User.java
public class User {
private String name;
private String email;public User(String name, String email) {
this.name = name;
this.email
RadioGroupを使ったRadioButtonの双方向データバインディング
双方向データバインディングが必要になって調べたので、備忘録として残しておきます。
# 双方向データバインディングとは
Databindingは、レイアウトファイルに画面に表示するデータをバインド出来る機能のこと。
もう少し乱暴に言うと、あるデータを使うようにレイアウトのxmlファイルでよしなに定義しておいて、アプリ実行時にそのデータをレイアウトにまるっと渡すと、表示に反映する部分のコードを書かなくて良くなるというちょっと便利な手法です。
あんまりやりすぎると逆に可読性下がるのでやり過ぎは注意ですが、便利なので慣れるととても使い勝手が良い機能です。特にLiveDataと組み合わせると、プログラム内で変更した値の表示を反映させるコードを書かずとも反映されるようになるため非常に便利です。しかし、これは基本的に「表示するデータ」を指定するもので、アプリならばたいていはユーザーからのアクション、入力を何かしら受け付ける画面があると思います。
そんなとき、ユーザーが入力したデータもまた、LiveDataに自動的に入れたいなーという時に使うのは、「双方向データバインディング」です。**データ→
僕たちはどのようにしてViewModelに通知すべきなのか
# はじめに
みなさま、値の受け渡しはどうしてますか?
私は去年までベタベタな組み込みC言語ユーザで、戻り値、参照渡しくらいしか使っていませんでした
当然、非同期的なやりとりをしようとすると詰みますということで私なりに整理したものを共有したいと思います
テーマは、「どのようにしてModelからViewModelに通知すべきか」、ですさて、Androidで一般的なMVVMアーキテクチャでは、アプリケーションはおよそ3層で表現できます
![スクリーンショット 2020-12-28 8.53.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924658/bef99e92-bdf1-71f3-909a-b8fee3b68d40.png)
この時、ViewModelからActivityへの通知はLiveDataを使うのが公式です
LiveDataには通常のObserverに加えて、Activityのライフサイクルを与えられるので、
ViewModelが値を返すときには既にActivityが破棄されてい
managed Google Playを利用している他組織へアプリの限定公開
この記事は [CBcloud Advent Calendar 2020 22日目](https://qiita.com/advent-calendar/2020/cbcloud)の記事です。
CBcloud 徳盛です。
Kotlin Coroutineの記事を書こうと思いましたが、ちょっと年が明けそうなので一旦保留して、あまりこんな機会ないであろう、最近あった他組織へ限定公開する方法を書きます。# 背景
managed Google Playを利用している組織から、弊社アプリを組織内で配信したいという話があったので調べた。# 方法
1. リリース前にGoogle Play consoleの「詳細設定」より「managed Google Play」タブを選択し、「オンにする」を選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/124149/451ea191-8e70-ddfa-077b-4a032c374367.png)2. 非公開アプリへのアクセス権より組織を追加し、
AndroidのChromeでリンクを押した時につく、青色を消す。
AndroidのChromeでリンクやボタンを押した時、リンク領域が青色になる。
これは、タップ時のハイライトカラーを透明にすることで解消できる。
全てのセレクタに適用して、解決した。Android
“`css:style.css
* { -webkit-tap-highlight-color: rgba(0, 0, 0, 0) }
“`
【Android】RecyclerView で無限スクロールを実装する
# やりたいこと
RecyclerView で作ったリストに無限スクロールを実装してみます。
API でデータセットを取得してリスト表示するような機能を想定しています。
画面生成時にリストを 10 件しておき、リストの下端までスクロールしたタイミングで 10 件ずつ追加で表示するサンプルアプリを作っていきます。
最終的に作成したアプリは Github で公開していますので参考にしていただければと思います。
https://github.com/yudai0308/infinite_scroll_sample
# 実装手順
## 1. レイアウトファイル作成
RecyclerView のレイアウトと、リストに表示させる1行分のレイアウトを作成します。
“`activity_main.xml
Kotlin の Coroutine で suspend 関数を理解する
先日、[ドリーム・アーツ](https://recruit.dreamarts.co.jp)では、[売場ノート](https://shoprun.jp)というアプリを Android に対応させた。
全面的に Coroutine を使って非同期処理を書いたので、そのとき理解のために実験した内容について備忘がてら書いておく。
## 前提
Kotlin 1.4.21
Android Studio 4.1.1“`gradle
dependencies {
implementation ‘org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9’
}
“`## Coroutine の動作をおさらいする
launch とか async/await がどういう順番で呼び出されるかといったことはここでは話題とはせず、Coroutine の利用シーンに絞って、Android アプリ内でどのようにコードが動くのかといったことを記述する。
Coroutine の典型的な利用シーンとして、何らかのユーザーの操作をトリガーとして
KotlinでRoomデータベース
KotlinでRoomデータベースを使用してみたので、覚書。
全コード:
https://github.com/CoffCookie/memoRoomとkaptが必要だったため、2つを指定。
最新版は下記
Room:
https://developer.android.com/training/data-storage/room?hl=jakapt:
https://kotlinlang.org/docs/reference/kapt.html私の場合、kaptはversion指定すると上手く行かなかったため、version指定なしで作成している。
“`app/build.gradle
plugins {
…
id ‘org.jetbrains.kotlin.kapt’
}dependencies {
…
def room_version = “2.2.5”
implementation “androidx.room:room-runtime:$room_version”
kapt “androidx.room:r
[Jetpack Compose] 1.0.0-alpha09から変わったこと。
## おすすめ
– Android Studio Arctic Fox Canary 2
– https://developer.android.com/studio/preview前はBetaバージョンを使ってましたが、
最近のバージョンにはCanary Buildに変わって使いましょう。
ComposeのPreviewはAndroud studio Beta Buildバージョンでは使わなくなりました。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137182/b08ca87a-108d-106a-d699-93edd743d9d0.png)
## Lib Version
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137182/a3d3c76a-51fc-f6f3-42ce-5e77b85eb3d2.png)
https://mvnrepository.co
【Dart】Mapのvalueを使ってソートする
Mapのvalueでソートしたい事があったので調査しました。
[SplayTreeMap
class](
https://api.dart.dev/stable/2.10.0/dart-collection/SplayTreeMap-class.html)
SplayTreeMapのfromにソートしたいmapとcompareを渡せばソートできるみたいです。下記のようなオブジェクトを作成しました。属性idでソートする予定。
“`Dart:Object
class Employee{
int id;
String name;
Employee(this.id,this.name);
}
“`
最初の並び順は下記の様な感じです。“`Dart:unSort
Mapmap = Map ();
map[‘hoge’] = new Employee(1, “sato”);
map[‘huga’] = new Employee(3, “tanaka”);
map[‘piy
【Android】MVVMをなんとなく理解した時の備忘録
MVVMをなんとなく理解したときの備忘録です。
MVCとかMVPを知っているとこんなもんかって感じです。
プロジェクトによって、使い勝手を良くしてカスタマイズすると良いと思います。##MVVMアーキテクチャ
* M | Model
* V | View
* VM| ViewModel
* MVPのPresenterのような役割
* ViewModelは、明示的にViewを更新しない。(DataBindingで自動的に反映)
* 特定のUI要素(TextViewやImageViewなど)に対して、Bindingする##MVVMのアプリ基本構成
リポジトリにデータソースを格納し、データバインディングによって自動的にViewを更新するイメージ
Activity1に対して、Fragment 1…*
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165793/f17fbcfe-9869-13ea-1eda-d8cdfe3285d0.png)##ViewModel
AndroidAppLinksでアプリを開く
## 概要
業務でAndroidAppLinks(以下AAL)を使ったのでまとめてみます。
主な内容は以下の通り
– DeepLinkとの違い
– assetlinks.json の置き場所
– 署名毎の対応
– 反応して欲しいURLの正規表現の書き方とその限界について
– 他のアプリも同じURLで反応する場合の挙動## DeepLinkとの違い
https://developer.android.com/training/app-links?hl=ja
DeepLinkで複数のアプリが反応した場合、どのアプリで開くか尋ねられる。AALではどのアプリで開くか尋ねられることなくアプリを直接起動させることができる。
## assetlinks.json の置き場所
自分の持つドメインの直下に `.well-kno
【Flutter】遭遇したエラー&&解決策まとめ②
## 前回
– [【Flutter】遭遇したエラー&&解決策まとめ](https://qiita.com/umaibou1126/items/050ee66f94f10ec114df)## 参考文献
– [【flutter初心者】ListViewやGridViewを入れ子にするには(Vertical viewport was given unbounded height エラー)](https://qiita.com/code-cutlass/items/3a8b759056db1e8f7639)
– [[Flutter]TextFieldタップでA RenderFlex overflowed bypixels on the bottom. が出るときの対処法](https://qiita.com/welchi/items/e9c907828e553d448269)
– [【Flutter】キーボード表示時の RenderFlex overflowed エラーを解消](https://yaba-blog.com/flutter-renderflex-overf
【Android】ラジオボタンを追加する方法
#プログラミング勉強日記
2020年12月26日
Androidアプリ開発でラジオボタンを作成したのでその方法を簡単にまとめる。#ラジオボタンを利用するときに使うクラスとメソッド
– RadioButton
– RadioGroup
– onCheckedChangeListener
– void check(int id)
– int getCheckradioButtonId()
– void clearCheck()
RadioButtonはそれぞれの項目に相当するクラス。
RadioGroupは複数のRadioButtonを持ち、それらの1つだけ選択できる。
OnCheckedChangeListenerは選択されている項目が変わった時に通知を受ける。
void check(int id)は引数で指定したラジオボタンを選択するメソッド。
int getCheckradioButtonId()は選択中のラジオボタンのIDを取得するメソッド。
void clearCheck()は選択を解除するメソッド。#ラジオボタンを配置する方法
レイアウトエディタの