Android関連のことを調べてみた2021年01月02日

Android関連のことを調べてみた2021年01月02日

Inside Flutter を読んで「Flutter 完全に理解した」状態を抜けた時に書いた記事たち

公式ドキュメントの 1 ページである、 “Inside Flutter” を頑張って読みました。

https://flutter.dev/docs/resources/inside-flutter

元々はアドベントカレンダーのネタ探しにと読んでみたのですが、このドキュメントを読むうちに Flutter の Widget が描画される過程で何が起きているかが分かってきたり、また `Text` や `setState()` といった普段何気なく使っているクラスやメソッドの実装を読んで理解できるようになったりといろいろな発見がありました。

さらに、Flutter の仕組みを知れば知るほど次から次へと新しい発見や疑問が湧いてきて、これは「Flutter 完全に理解した」状態を抜けて「Flutter 全然わからん」の状態に入ったと言えるのではないかと思い、その時に得た発見をいろいろと記事にしてみました。

この記事ではその時に書いた記事を一覧してみたいと思います。

## 【Flutter】Navigator.of(context) から理解する 3つのツリー

https://zenn.

元記事を表示

UbuntuでUnity+ARCoreを使ったAndroid用アプリ開発

Unity+ARCoreを使ったAndroid用アプリを開発していますが、Ubuntuで開発している記事があまり見当たらなかったので、主に環境構築についてまとめました。
現時点(2020/12/30)時点で、極力新しいバージョンのUnityとARCoreを使用しました。

# 開発したアプリ
「[はじめようARCore in 札幌](https://www.slideshare.net/ssuserc0d7fb/arcore-in)」で解説されている、画面をタップしたらその場所にオブジェクトを置くアプリを開発しました。
ただし、こちらの記事で使用しているARCoreのバージョンは少し古るいため、一部最新に合わせて変更しました。

# 環境
– 開発マシン
– Ubuntu 16.04
– Unity Hub v2.0.0
– Unity 2019.4.17f1 (LTS)
– ARCore v1.22.0 [Download link](https://github.com/google-ar/arcore-unity-sdk/releases/tag/v1.22.0)
– Gra

元記事を表示

Flutterをはじめる[環境設定〜立ち上げ]

# 概要
現在エンジニアの需要が高まりと同時にエンジニア転職のために某スクールに通って勉強をする人等が増えている。
そのような人が勉強する内容はwordpress等のweb制作であることが多い。このような技術は差別化を測るのが難しいのでモバイルアプリの開発をしようと考えた。
swiftやkotlinではなくFlutterを選択した理由は主に以下の3つである。

・iosとandroidの両方の開発ができる
・Google様がバックに居るためメンテナンスが定期的に行われる
・新しい技術なので参入できる可能性が高い

# 実行環境
・mac Catalina

# インデックス
[1.環境構築](#1-環境構築)
[2.flutter doctorのエラー対処](#2-flutterのエラー対処)
[3.アプリの立ち上げ](#3-アプリの立ち上げ)

#1. 環境構築
環境構築は非常に簡単で以下のステップを踏むと完了する。

1.Flutter SDKのdownload
2.環境変数の設定
3.Android studioのdownload

以下で簡潔にそれぞれのステップについて解説す

元記事を表示

Flutter初心者に必要な最低限の知識

## もくじ

1. はじめに
2. 作成したコードの紹介
3. 基本構成
4. 動的に表示を変更
5. 画面遷移
6. 抑えておくべき記法
7. さいごに

### はじめに

Javaの経験はありますが、flutterおよびdartは初心者の私がアプリ作成までに学んだ、最低限これだけは抑えておくべき内容を厳選してまとめておきます。
「初心者だけど、とにかく早くアプリが作成したい」「flutter始めたいけど調べるのが面倒くさい」なんて人にはおすすめできる内容になっていると思っています。
この記事が誰かのお役に立てれば幸いです。

[flutterとは](https://qiita.com/nskydiving/items/4fcf0dbad923d50601f9)

### 作成したコードの紹介

![sample1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527168/63f68de3-ab35-5250-b148-cf1bc538beb3.jpeg)

![sample2.jpg](h

元記事を表示

【Android / Kotlin】フォーム(EditText)入力の際、背景タップで表示キーボードを閉じる

#はじめに
Androidアプリ開発(Kotlin)で学んだ内容を備忘録として残します!

# どのような機能か?
##### 場面

– フォーム(EditText)にフォーカスが当たっている
– 入力用キーボードが表示されている

##### 動作
上記の状態で背景画面をタップするとキーボードを閉じる

というもの

# 実装
#### Activity

“`MainActivity.kt

// ~ 省略 ~

// Viewがタッチされる時に処理が走るメソッド
override fun onTouchEvent(event: MotionEvent?): Boolean {
// InputMethodManager をキャストしながら取得
val inputMethodManager: InputMethodManager =
getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager

// エルビス演算子でViewを取得できなければ return

元記事を表示

【Android】PreferenceFragmentCompatでTwitter風の設定画面を作る

[PreferenceFragmentCompat](https://developer.android.com/guide/topics/ui/settings/organize-your-settings?hl=ja)、とても便利ですが痒いところに手が届きませんよね。特にTwitter系の設定レイアウトはよく見ますが、標準では用意されていません。
ここでは設定画面のカスタマイズ方法について説明していきたいと思います。

|完成図|参考レイアウト(Twitter)|
|:—:|:—:|
|![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/985195/828307bb-e609-b342-64fa-2041af082036.jpeg)|![IMG_20201231_122559.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/985195/8c0edc9c-6a4e-a108-39b1-500a3da07348.png

元記事を表示

ConcatAdapterを使ってRecyclerViewでExpandableListViewみたいなリストを作ろう

カテゴリーごとで、開閉可能なリストを作りたいなーと思ったことはないでしょうか。
ExpandableListViewというViewがAPI Level 1から存在しますが、ListViewの拡張で、ちょっと今となってはレガシーですし、拡張するのも大変なViewです。RecyclerViewを使いましょう。
しかし、RecyclerView#Adapterを工夫すれば作れますが、一から作るのはちょっと大変そうですね。
本稿執筆時点でまだbeta01ですが、recyclerviewの1.2.0からConcatAdapter(当初はMergeAdapterという名前でしたが、alpha04でConcatAdapterにリネームされました)というAdapterが使えるようになります。これを使えば比較的簡単に作ることができますのでそのご紹介。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155171/812d1324-59e0-032d-a2b2-bb97d7f21e22.gif)

## 作り方

Conca

元記事を表示

【Android】最小構成でRoomを使う

# 環境
– Mac
– AndroidStudio4.1
– Kotlin

# 前提知識
– RDB
– SQL
– [ViewModel](https://qiita.com/yuki-kamikita/items/4cc2959aeca6da3b8d1b)
– LiveData

# 結論
– [ソースコード全文 – Github](https://github.com/yuki-kamikita/RoomSample)
– [AndroidStudioでGitHubを使う – Qiita](https://qiita.com/yuki-kamikita/items/26b17f45a8505e5928b6)
– Entity、DAO、Databaseの3つで構成される
– それぞれの内容は下記

#### Entity
テーブルの定義

#### DAO(Data Access Object)
クエリの作成

#### Database
どのEntity(テーブル)とDao(クエリ)を使うか指定

# コード解説
#### build.gradle
バージョンとか変わってる

元記事を表示

【EV3 x C#】lejos-server/clientを使ってC#でEV3を制御する(Android編)

#はじめに
Visual Studio/C#でWindows、Macとくれば「次はAndroidからEV3を制御してみよう!」ということでやってみました。
【関連記事】
[【EV3 x C#】lejos-server/clientを使ってC#でEV3を制御する(Windows編)](https://qiita.com/teonsen/items/270e196d3c2b38658427)
[【EV3 x C#】lejos-server/clientを使ってC#でEV3を制御する(Mac編)](https://qiita.com/teonsen/items/5b7ff8300390e2a52cd9)
本記事は、上記Windows編での準備およびlejos-serverの転送・実行ができている状態を前提とします。

スマホアプリは今回が初めてという私ですら、Xamarin.Formsを使用して簡単にAndroidからEV3の制御ができましたのでご紹介します。

#環境
####開発PC
* Windows 10 64bit
* Visual Studio 2019

####EV3
* l

元記事を表示

RoomデータベースとListView

####関連
前回記事:
KotlinでRoomデータベース
https://qiita.com/clipbord/items/c7a12ec17412b10578fd

全ソース:
https://github.com/CoffCookie/memoList

####参考

KotlinでAndroidアプリのlistviewを実装する方法を現役エンジニアが解説【初心者向け】


上記を参考に上記記事で作成したコードにListViewを組み込んでみた。

###ListViewのコード

“`MainActivity.kt
val data = arrayListOf(“0”)

//配列にデータベースに保存したデータを取り出して保存
for (memo in memoList) {
data.add(memo.text.toString())
}

// リスト項目とListViewを対応付けるArrayAdapterを用意する
val adapter = ArrayAdapter(thi

元記事を表示

More than one file was found with OS independent path ‘lib/arm64-v8a/libopencv_java3.so’. エラー回避備忘録

## 概要
出くわしたエラー

“`
More than one file was found with OS independent path ‘lib/arm64-v8a/libopencv_java3.so’.
“`

きちんとopencvをcmake から読み込んで動的リンクをしているはずなのだが、このエラーが出てしまう。

## 解決法
`app/gradle`

“`
externalNativeBuild {
cmake {
path “src/main/cpp/CMakeLists.txt”
version “3.10.2”
}
}
sourceSets {
main {
jniLibs.srcDirs = [‘src/main/libs’]
}
}
“`

とする。

なぜ解決するかは完全には理解していない。。

元記事を表示

boost をandroid ndk でビルドする備忘録

## 概要
boost をndkでプレビルドしてからandroid studio上でリンクする。

## 手順
https://github.com/moritz-wundke/Boost-for-Android
ここを基本的にフォローする。

必要なandroid ndk をダウンロードする必要がある。
古いバージョンはunsupported versionのところからダウンロードする必要がある。

また、`./build-android.sh`
の中にビルドするboost のバージョンがハードコードされているため、
これを先ほどダウンロードしたndkのバージョン、gitに記載されている対応表をみて、
バージョンを適宜ハードコードし直す。

元記事を表示

【Android】MockK の設定でハマったこと

[MockK](https://github.com/mockk/mockk)を使ってテストコードを書いていた時に、いくつかエラーでハマったことがありました。
どのようなエラーが起きて、どう解決したのかを備忘録として残します。

# java.lang.UnsupportedClassVersionError

テスト実行時、以下のエラーが出て実行に失敗することがあります。

“`
java.lang.UnsupportedClassVersionError: io/mockk/proxy/jvm/dispatcher/JvmMockKDispatcher has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

at java.lang.ClassLoader.findBootstrapClass(N

元記事を表示

ceres-solver を android ndk でビルドする備忘録

## 概要
android ndk で ceres-solver をビルドし、liceres.a が欲しかった。
それをアプリケーションにnative build する際にリンクさせる必要があった。

## ceres-solver バージョン確認
ceres-solver は様々なバージョンがあり、1.12, 1.13, 1.14, 2.0 系などがある。
それらをgithubのリリースから取得。

## ndk バージョン確認
ndk download と検索し、ndk(現在は22系が正式サポートされていた)
の必要なバージョンをダウンロードする。(前のバージョンはunsupported versionみたいなところから取得できる。現在は10e系が一番古いものとしてアーカイブに残っていた。)

## ceres-solver のバージョンと ndkのバージョンを確認
試した感じでは、

ceres 1.12 系は、ndk 10系あたりだとビルドできた。
ceres 1.14 系は、ndk 14系あたりだとビルドできた。
ceres 2 系は、 ndk 21系あたりでビル

元記事を表示

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`をクリック。

【Android】Context って何??

# はじめに
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)

(開発環境も何書けばいいのかわから

元記事を表示

OTHERカテゴリの最新記事