Android関連のことを調べてみた2020年08月16日

Android関連のことを調べてみた2020年08月16日
目次

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 build

object 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とは?

> ライブ テンプレートにコード スニペットを入力し、コードの小さなチャンクを

元記事を表示

【Flutter】グラデーション使用時に境界線が見える問題

# 概要
グラデーション使用時に境界線が見えてしまう場合がある。
[画面描画時のディザリング](https://api.flutter.dev/flutter/dart-ui/Paint/enableDithering.html)を有効にする事により、滑らかに表示する事ができる。

## 再現
“`dart
import ‘package:flutter/material.dart’;

class App extends StatelessWidget {
static const String _title = ‘Gradient Test’;

@override
Widget build(BuildContext context) {
return MaterialApp(
title: _title,
home: Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0

元記事を表示

【Flutter】安心してレポジトリを公開するために必要なgitignoreの設定

#この記事を読んで習得できること
Flutterのフォルダを安心してgithub or gitlabに載せられるようになる

#結論
`.gitignore`に
`!*.gitignore`を追加する

これより下は時間がある人だけでいいですよん

#安心して,とは…?
Flutter関係の記事を載せようと思っていて、その際にソースコードも公開したいなーと思っていた。

全世界に公開するのなら、自分のPC内の情報は載せたくないなー(当然)と思っていたので、フォルダ内に自分の情報が載っていないか、調べてみた。

調べたっていっても、そんなたいそうなことはしてなくて、
フォルダ内のソースを、以下の文章で検索してみるってだけ。
`/Users/<自分で付けたPCのユーザー名>/`

すると、結構な分量が出てきてしまった。

![スクリーンショット 2020-08-13 19.52.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389553/e498988b-b9dd-d61a-510b-26da20cd

元記事を表示

Androidでキーボードを非表示にする方法

## Androidでキーボードを非表示にする方法

### 背景
* 自分のメモ用です。

### 実装方法

* Kotlin

“`
// Hide the keyboard.
val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0)

“`

元記事を表示

【小ネタ】AndroidでCrashlyticsをFabricからFirebaseに移行する際の注意点【リモートLT】

リモートLTのYouTube(クリックで再生, 日本語/英語字幕あり)
[](https://www.youtube.com/watch?v=LAzZGSAmwx0)

# はじめに

スクリーンショット 2020-08-13 18.48.34.png

Fabric SDKがアプリのクラッシュを報告するのは 2020年11月15日 までとなります。
なぜかというと大人の事情です。
FabricはFirebaseに買収され、今年の3月にサポート終了していました。

### 大人の事情まとめ(FirebaseとCrashlyticsの歴史)

“`
2011年 James

元記事を表示

DSL element ‘android.dataBinding.enabled’ is obsolete and has been replaced with ‘android.buildFeatures.dataBinding’. の解消

## 問題
Android Studio4.0にバージョンアップしてからコンパイルした際に以下のようなwarningが出ていた。

“`
DSL element ‘android.dataBinding.enabled’ is obsolete and has been replaced with ‘android.buildFeatures.dataBinding’.
“`
## 解決
原因:データバインディングを有効にするコードブロックが新しくなったため。

“`app/build.gradle
android {

dataBinding {
enabled = true
}

}
“`
↓こちらに変更すれば良い。

“`app/build.gradle
android {

buildFeatures {
dataBinding true
}

}
“`

元記事を表示

計算ドリルアプリの開発① 1+1を答えさせるアプリ

私には小学1年生の息子がいます。勉強嫌い、ゲーム大好きな息子なので、計算アプリなんかがあると少しは勉強してくれるかなぁと思い、作ってみようと思います。

# はじめに
### 開発環境
– OS:Windows 10(1903)
– 開発ソフト:Visual Studio 2019 Community
– プラットフォーム:Xamarin.Forms
– 開発言語:C#

### 環境の準備
以下を参照ください。
[Xamarin.FormsでAndroidアプリ開発](https://qiita.com/yasu006/items/1c29af89bce513245d6a)

# 超簡単なアプリから。1=1を答えさせるアプリ
### Mainpage.xamlの修正点
以下のコードを追加します。

“`ruby

元記事を表示

Nuxt.jsでURLスキームを利用してAndroidアプリを起動

Nuxt.jsでWebページを作成した場合の、URLスキームでのAndroidアプリ起動方法をまとめておきます。

# nuxt-user-agentを導入

Android端末かの判定に [nuxt-user-agent](https://github.com/fukuiretu/nuxt-user-agent) を使用します。
下記コマンドで、Nuxt.jsのプロジェクトにインストールしてください。

“`bash
npm install -S nuxt-user-agent
“`

`nuxt.cofig.js` ファイルに、設定を追加します。

“`nuxt.config.js
modules: [
‘nuxt-user-agent’
],
“`

# middlewareの作成

ユーザーエージェントを判定して、アプリ起動やストア移動を行うmiddlewareを作成します。
`const ANDROID_SCHEME = ‘sample://app’;` の部分で、Androidアプリを起動するURLスキームを指定しています。

“`middleware/lau

元記事を表示

OTHERカテゴリの最新記事