- 1. Androidエミュレータで指紋認証を実行する方法
- 2. Android Architecture ComponentのLiveDataの使い方
- 3. Android Architecture Blueprintsでクラス図を描きながらMVPを学ぶ
- 4. kotlinとjavaの基礎をまとめてみた
- 5. Jetpack ComposeのConstraintLayoutなどがどのようにModifierクラスだけで様々なレイアウトを処理するか
- 6. Flutterでローカルな通知機能を実装するためのOSごとの前設定
- 7. kotlin&Java:特定のフラグメントのみツールバーを表示しない方法
- 8. ConstraintLayout入門その6 – チェーン
- 9. 2言語でアプリ開発してみた
- 10. MongoDB Realmで、超初心者が無料でAndroidアプリのバックエンド処理を作ってみた
- 11. MongoDB Realmで、超初心者でも無料でスマホアプリとクラウドDBをお手軽連携
- 12. 新卒プログラマの学習ログ 〜 其の五 〜
- 13. 【Flutter】GridViewを使って簡単に要素を横に羅列させよう【gridview】
- 14. jCenter (bintray) にアップロードするbuild.gradle.kts
- 15. Gradle Kotlin DSL (build.gradle.kts) で構造体っぽい定数定義をしたい
- 16. 【Flutter】Flutterの複数バージョンを共存させる方法
- 17. プライバシーポリシー
- 18. Snackbarの文言が複数行の時に上下に大きな空白ができるのを調整する
- 19. 【Flutter】超簡単!要素を画面いっぱいに表示する方法【Expanded】
- 20. 5分で出来る!AndroidStudioのLiveTemplate
Androidエミュレータで指紋認証を実行する方法
F1(Mac の場合は Command+/)キーを押してExtended controlsウィンドウを開きます。
![Screenshot from 2020-08-17 10-57-52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658122/813459f1-4358-9272-e2a4-8852395231a3.png)メニュー内の「Fingerprint」から指紋認証をエミュレータ上で実行することが出来ます。
## 指紋データの登録
設定→セキュリティ→指紋登録画面を開きます。
TOUCH THE SENSORをクリックしてFinger1の指紋を登録します。
## 指紋認証を実行する
あとは指紋認証を使用したいときに、事
Android Architecture ComponentのLiveDataの使い方
#はじめに
今回はAndroid Architecture Component(以下AAC)にあるLiveDataに関する説明をしていきます。
とっても便利なものなので覚えておいて損はないです。EditTextに入力した値をTextViewにそのまま表示させるアプリを作りながら説明していきます。
#今回説明しないこと
AACの説明
BindingAdapter等の説明
ViewModelのこと#環境
appレベルのbuild.gradleに以下の記述をしてください。“`gradle:build.gradle
def lifecycle_version = “2.2.0”
implementation “androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version”
implementation “androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version”
implementation “androidx.fragment:fragment-kt
Android Architecture Blueprintsでクラス図を描きながらMVPを学ぶ
# Android Architecture BlueprintsでMVPを学ぶ
## 初めに
Androidのアーキテクチャについて学びたいと思っていた時に、調べたところ「Android Architecture Blueprints」が良いとあったので、クラス図を書きながらアーキテクチャについて学んでみます。プロジェクト見てもいまいちつかめない方は、[PEAKS(ピークス)|Android アプリ設計パターン入門](https://peaks.cc/books/architecture_patterns)を見るとより分かりやすいと思います。
MVPとMVVMについて解説があります。
Android開発が初めての方にはおすすめです。## Android Architecture Blueprintsとは
Googleが公開しているAndroidアプリ(TODOアプリ)を様々なアーキテクチャで実装したプロジェクト。
アーキテクチャごとにブランチが異なり、MVPやMVVM、Clearn Architectureなど同じTODOアプリが別のアーキテクチャで書かれていて比較したら面
kotlinとjavaの基礎をまとめてみた
# はじめに…
この記事は[1個前の記事](https://qiita.com/sato-na/items/cc23f9b1db9c948dc00e)で書いた、
**7日間毎日記事投稿の2日目**
になってます
使うコードは下に貼りますが、このアプリの詳しい機能はその1個前の記事をご覧ください!
– java版 : https://github.com/sato-na/guruwake_java
– kotlin版 : https://github.com/sato-na/guruwake_kotlin
↓ここからが今回の記事の本題です↓
# それぞれの言語の基礎を比べると…
— 目次 —
1. 変数定義の方法
2. if文の書き方
3. for文の書き方
4. String→Intにする方法
## 変数定義の方法
– javaの場合
`型 変数名 = 初期値;`
> 型の指定が必要
例)
“`java:ResultActivty.java
String rTxt = “”; // 31行目
int member
Jetpack ComposeのConstraintLayoutなどがどのようにModifierクラスだけで様々なレイアウトを処理するか
こんなKotlin DSLの使い方あるんだと思って知らなかったのでメモしておきます。
Jetpack ComposeのConstraintLayoutは現状では、以下のように書きます。
https://android-review.googlesource.com/c/platform/frameworks/support/+/1321040/8/ui/ui-layout/integration-tests/layout-demos/src/main/java/androidx/ui/layout/demos/ConstraintLayoutDemo.kt より
“`kotlin
ConstraintLayout {
val (text1, text2, text3) = createRefs()Text(“Text1”, Modifier.constrainAs(text1) {
start.linkTo(text2.end, margin = 20.dp)
})
Text(“
Flutterでローカルな通知機能を実装するためのOSごとの前設定
## 前置き
とあるアラートアプリを作成していて、ローカルでの通知機能を実装する必要が出てきました。通知機能に関する日本語記事が何故か少ないような気がしますが、Flutter内でやることについては[この英文記事](https://itnext.io/local-notifications-in-flutter-6136235e1b51)を追っていけば問題なく進められると思います。しかし、前提として`flutter_local_notifications`というパッケージを使うために、OSごとの固有の設定が必要になるのでそれについてまとめておきます。ですので、この記事の内容は概ね[flutter_local_notificationsのページ](https://pub.dev/packages/flutter_local_notifications)のまとめです。
もし、記事の内容が参考になれば[Twitter](https://twitter.com/1d7678174656)のフォローをお願いします。個人的に進めているアプリ開発に関連することをよくツイートします。
## 環境
kotlin&Java:特定のフラグメントのみツールバーを表示しない方法
#はじめに
Android開発で特定のフラグメントのみツールバーを表示しない実装に今後も遭遇することが予想されるため、備忘録を含め下記にまとめさせていただきます。## kotlinの場合
“`kotlin:kotlin
//隠したい
(activity as AppCompatActivity?)!!.getSupportActionBar()!!.hide()//表示したい
(activity as AppCompatActivity?)!!.getSupportActionBar()!!.show()
“`## Javaの場合
“`kotlin:Java
//隠したい
((AppCompatActivity)getActivity()).getSupportActionBar().hide();//表示したい
((AppCompatActivity)getActivity()).getSupportActionBar().show();
“`以上となります。
今回参考にした記事です。
より詳細に記載がりますので、よろしければご参照ください。(Javaで
ConstraintLayout入門その6 – チェーン
ConstraintLayoutを使用するための設定については、[ConstraintLayout入門その1](https://qiita.com/yamadacsa/items/a4fcf4de9982111cdb7c)をご覧ください。
## ConstraintLayoutのチェーン
ConstraintLayoutの子Viewが形成する**チェーン**とは、位置を相互に制約し合っている、2つ以上の要素からなる子Viewの集合を指します。チェーンには水平方向のチェーンと垂直方向のチェーンがあり、子Viewは水平方向のチェーンと垂直方向のチェーンの最大2つのチェーンに属することができます。水平方向のチェーンは子Viewの左端と右端を、垂直方向のチェーンは子Viewの上端と下端を制約によって決定するためのものであり、2つのチェーンに属している子Viewの水平方向の位置と垂直方向の位置は原則として2つのチェーンによって独立に決定されます。
chain_horizontal.xmlは水平方向のチェーンの例です。この場合、 “`
“`, “`
2言語でアプリ開発してみた
# アプリ、開発しました!
## アプリの概要
**メンバーとグループ数を入力するとグループ分けするアプリ**
機能の詳しい説明 : [はてなブログ](https://sato-na.hatenablog.com/entry/2020/08/15/205239)
## 開発環境 / コード
– エディタ : AndroidStudio
– java版 : https://github.com/sato-na/guruwake_java
– kotlin版 : https://github.com/sato-na/guruwake_kotlin
# なぜ、2言語で同じアプリを開発したのか
kotlinとjavaの共通点 = アンドロイドアプリが開発できる
だけど、書き方が少し違う…
なので、
同じアプリを開発して同じ機能を実装しようとしたときに、
どのように違うのかが気になって作りました!
ですが、2言語を照らし合わせながらコードを書いてみると…
**ただコードをあわせるだけじゃまだ振り返りにくいな…**
# ということで…
**今日から7日間毎日記
MongoDB Realmで、超初心者が無料でAndroidアプリのバックエンド処理を作ってみた
#はじめに
この記事は、
[こちらの記事のIoTセンサデータを](https://qiita.com/c60evaporator/items/283d0569eba58830f86e)
**モバイル連携クラウドサービス「MongoDB Realm」を通じて、スマホアプリとデータ連携**させた記事となります
![summary.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/85316a54-98bb-0b23-e803-f827b7472687.png)MongoDB Realmの利用法については、[こちらの記事の内容を応用しております](https://qiita.com/c60evaporator/items/8cd83abfeb3b232413d1)
**まずは上の2つの記事をご覧頂いてから**、本記事を見て頂けますと幸いです。
(また、スマホアプリのフロントエンド側は別途記事を作成します)#スマホアプリとバックエンド処理
詳しくは[上の記事](https://qiita.c
MongoDB Realmで、超初心者でも無料でスマホアプリとクラウドDBをお手軽連携
#はじめに
この記事は、スマホアプリ未経験者がクラウドDBサービス**「MongoDB Realm」**を利用して、
サーバデータと連携したスマホアプリを作成した記事となります。![summary.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/1d75653a-812b-48bc-26a2-7d1673362dd2.png)
私は**スマホアプリ開発未経験の超初心者**ですが、公式サイトが丁寧だったこともあり、目的の連携処理を実装することができました。
([実践編として、こちらの記事もご参照いただければと思います](https://qiita.com/c60evaporator/items/92d0ebde001f568f2707))**スマホアプリ初心者がバックエンド処理を作成する際の、一つの指針になればと思います。**
[英文チュートリアル](https://docs.mongodb.com/realm/tutorial/)を参考にしたため、間違いがあるかもしれませんが、見つ
新卒プログラマの学習ログ 〜 其の五 〜
#Kotlinのあれこれ
Android StudioでKotlinを使用しながら、Androidアプリ開発に関して学んでいます。
Javaの基礎知識があればKotlinの学習は必要ないと上司から言われていましたが、全然そんなことないと思っています。(泣)確かにオブジェクト思考を前提としたプログラミングではありますが、Javaと比較してKotlinは型推定が常識のように行われるためにいきなりライブラリの仕様等を見ると心が折れます。
#高階関数とそれに組み合わさるあれこれ
前回に関数オブジェクトについて書かせていただきました。
関数オブジェクトが本領を発揮するのは、関数の引数として与えたり、返り値として返すことができる点です。高階関数は関数を引数として受け取って動作する関数です。
今回は関数オブジェクトを引数として渡す方法や、それに書き換えられるラムダ式と絡めて記事を書いてみます。#早速コードを見てみよう
まずは実際に動作するコードを確認してみましょう。
以下は受け取った文字を出力する関数オブジェクト`charPrint`を高階関数`forEach`に引数で渡しています
【Flutter】GridViewを使って簡単に要素を横に羅列させよう【gridview】
#この記事を読んで習得できること
FlutterでGridViewを使って、要素をこんな感じに横に並べることが出来るようになる![Simulator Screen Shot – iPhone SE (2nd generation) – 2020-08-15 at 14.14.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389553/e8c23166-f67d-2c44-15df-772188abf8ad.png)
#結論
こんな感じで書く“`main.dart
…略
child: GridView.count(
padding: EdgeInsets.all(10), // 割と重要!ここでGridViewの位置を調整する
crossAxisCount: 4, // 一列に要素をいくつまで置けるかを指定
children: List.generate(
jCenter (bintray) にアップロードするbuild.gradle.kts
Android StudioのKTSサポートも強化され、ビルドスクリプトを徐々にGroovy DSLからKotlin DSLに乗り換える人も増えてきていると思います。この記事は [jCenter (bintray) にアップロードするbuild.gradle](https://qiita.com/ryo_mm2d/items/5ffc52c4554ebeef45de) のKTS版です。
projectのbuild.gradleに記述していた定義は、buildSrcでobjectとして定義してます。
[Gradle Kotlin DSL (build.gradle.kts) で構造体っぽい定数定義をしたい](https://qiita.com/ryo_mm2d/items/fde898338967f5a64ce3) を参照“`kotlin:ProjectProperties.kt
package buildobject ProjectProperties {
const val groupId: String = “com.example”private
Gradle Kotlin DSL (build.gradle.kts) で構造体っぽい定数定義をしたい
Androidなどのプロジェクトでプロジェクト全体の定数を定義するときに、以下のような構造体っぽい定義を使っていました。
“`gradle
buildscript {
def versionMajor = 1
def versionMinor = 0
def versionPatch = 0
ext {
pj = [
versions : [
name: “${versionMajor}.${versionMinor}.${versionPatch}”,
code: versionMajor * 10000 + versionMinor * 100 + versionPatch
],
groupId : “com.example”,
siteUrl : “https://github.com/e
【Flutter】Flutterの複数バージョンを共存させる方法
## この記事で話すこと
FlutterのバージョンをStableやMasterなど複数共存させる際に数秒で切り替える方法をお伝えします。## 背景
Flutter 1.2.0がリリースされて、アップデートしたが、あるプロジェクトで動作しないライブラリがあったため、
Flutter ‘Stable’と’1.17.4’を同居させる必要がありました。毎回アップグレード、ダウングレードを実施しているとその度に10分程度失うことになるので、何かないかと探していたところfvmというものがあるらしかったので、使用したらいい感じだったので紹介です。
## fvmとは
[fvm](https://github.com/leoafarias/fvm)>Flutter のバージョン管理。Flutter SDK のバージョンを管理するためのシンプルな cli です。
>FVM は、プロジェクトごとに使用される Flutter SDK のバージョンを参照することで、一貫したアプリビルドの必要性をサポートします。また、複数の Flutter バージョンをインストールしておくことで、毎回 Flut
プライバシーポリシー
#プライバシーポリシー
ユーザー登録をする必要はありません。
第三者に個人を特定できる情報を提供することはありません。
本アプリが個人情報を収集・利用することはありません。
使用しているライブラリは個人情報を利用していません。
Snackbarの文言が複数行の時に上下に大きな空白ができるのを調整する
この記事は material-components 1.2.0 での内容になります
## 遭遇した問題
Snackbar の文言の上下の Padding が広すぎる気がする ?
[Snackbar のガイドライン](https://material.io/components/snackbars) をみてもここまで上下に Padding は設定されていなさそう。
## 解決策
`design_snackbar_padding_vertical_2lines` のリソースをオーバーライドする“`
14dp
“`【Flutter】超簡単!要素を画面いっぱいに表示する方法【Expanded】
#この記事を読んで習得できること
Flutterの画面作成で「画面いっぱいに要素を表示したい」っていう問題を解決する力(多分)#結論
・`Expanded`を使って要素を隙間いっぱいに大きくする
#こんな感じ
![スクリーンショット 2020-08-14 15.14.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389553/74f6e974-c974-be98-40e8-216eea3d2469.png)#とりあえず、書いてみる
“`main.dart
class _MainViewControllerState extends State{
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
Container(
decora
5分で出来る!AndroidStudioのLiveTemplate
# はじめに
DatabindingしたViewModelから、クリックイベントなどをLiveDataでFragmentに通知するとき、privateなMutableLiveDataとpublicなLiveDataを作るの面倒だな〜と思ったことはありませんか??
私はあります!!“`kotlin
class SampleViewModel : ViewModel() {
private val _sampleButtonClick = MutableLiveData()
val sampleButtonClick: LiveData= _sampleButtonClick
}
“`今回は、AndroidStudioのLiveTemplateを使うことにより簡単に書けることに気づいたのでそれを紹介します!
私は今までLiveTemplateは使うことはありつつ作ったことはなかったのですが、作るのもとても簡単でした!# LiveTemplateとは?
> ライブ テンプレートにコード スニペットを入力し、コードの小さなチャンクを