- 1. Maven Publish PluginでAndroid Libraryのソースコードを公開する
- 2. ConstraintLayout入門その2 – センタリング、あるいはbias
- 3. TabLayoutのインジケーターをカスタマイズする
- 4. sora-unity-sdkがAndroidに正式対応したらしいのでサンプルを動かしてみた
- 5. ReactNative+ExpoでAndroidアプリをビルドする
- 6. 大学生が1週間でFlutterアプリを学んでリリースした過程(7日目)
- 7. 有名人と対戦してる気分が味わえるオセロアプリ作ってみた
- 8. スマホもPCの一員としてファイル同期したいじゃない?
- 9. ConstraintLayout入門その1 – RelativeLayoutとの違い
- 10. FlutterFragmentを設置したらToolbarがStatus barにめり込んだ。対処法を解説。
- 11. ViewPager2のFragmentのtag名はf0, f1, f2
- 12. オレトラストネットワークでちゃっちゃとファイル共有
- 13. 大学生が1週間でFlutterアプリを学んでリリースした過程(6日目)
- 14. Groupieでclickイベントを実装する
- 15. 【Android】遅延処理・非同期処理を使って時間差でViewに反映させる
- 16. 機種変更をするときに気をつけるべきこと
- 17. android firebase Auth email&passwordでログインする処理memo
- 18. Jetpack Navigationで最初のフラグメントでも戻るための左矢印を表示する
- 19. [Android]AndroidX Preference Library を使って設定画面を作成する
- 20. AndroidのマルチモジュールでGithub Actionsを使ってLintの結果をPRのコメントに表示する方法
Maven Publish PluginでAndroid Libraryのソースコードを公開する
# 概要
[Maven Publish Plugin](https://docs.gradle.org/current/userguide/publishing_maven.html) で Android Library のソースコードを添付する方法です。# build.gradle.kts(差分のみ)
以下、既に Maven Publish Plugin を利用している場合向けの、差分のみを示したコードです。
※ 各値は自身の環境に合わせてください“`kotlin:build.gradle.kts
tasks {
val androidSourcesJar by creating(Jar::class) {
archiveClassifier.set(“sources”)
from(android.sourceSets[“main”].java.srcDirs)
}
}afterEvaluate {
publishing {
publications {
create
ConstraintLayout入門その2 – センタリング、あるいはbias
ConstraintLayoutを使用するための設定については、[前回記事](https://qiita.com/yamadacsa/items/a4fcf4de9982111cdb7c)をご覧ください。
## ConstraintLayoutのセンタリング
FrameLayoutの子Viewを親Viewの中央に置くときは “`android:layout_gravity“` に “`center_horizontal“`, “`center_vertical“` などの値を設定します。RelativeLayoutの子Viewを親Viewの中央に置くときは “`android:layout_centerHorizontal“`, “`android:layout_centerVertical“` などの値を “`”true”“` に設定します。
これらに対し、ConstraintLayoutでのセンタリングは、「Viewの上下端もしくは左右端を同時に制約する」、という、いささか手間のかかる方式を用います。“`xml:activity_main.xml
TabLayoutのインジケーターをカスタマイズする
Material ComponentsにはTabLayoutというものがあり、ViewPagerなどと組み合わせてタブ切り替えのUIを提供します。
標準的な見た目は以下のようになっています。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155171/b134c5cc-fe09-4687-671b-3f66ebe582dc.gif)このように、標準では選択されているタブを示すインジケーターがアンダーラインで表示され、選択した場所へアニメーションを伴って移動します。
一方、iOS版のGoogleMapではタブがこんな動作をしています。(Android版はアニメーションしない)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155171/7585ab77-1f64-1083-020e-66a16ee6cdab.gif)これの実装がどうなっているのか、iOSに詳しくないこともあって分かりませんが、Segmented Co
sora-unity-sdkがAndroidに正式対応したらしいのでサンプルを動かしてみた
![a.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101808/a9bb7360-a084-8af0-683f-05e2d7179900.gif)
株式会社時雨堂様が提供してくださっているsora-unity-sdkがAndroidに正式に対応したらしいので、サンプルを動かしてみました。
試した環境
sora-unity-sdk 2020.5
PC
Windows10
Unity2019.1.14f1スマホ
Android10
Motog8#1.サンプルの入手
GitHubから入手。
https://github.com/shiguredo/sora-unity-sdk-samplesREADMEに依ると
>
sora-unity-sdk のインストール
Windows の場合は install.bat を、macOS の場合は install.sh を実行して下さい。 これで各種サンプルを実行するために必要になる sora-unity-sdk をインストールできます。との
ReactNative+ExpoでAndroidアプリをビルドする
ReactNative+ExpoでAndroidアプリをビルドする場合にいくつか面倒なことがあったので、備忘録を残します。
# ReactNativeとは
![1280px-React-icon.svg.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275351/996bf1d4-2f96-d612-dfcd-93db90c1156a.png)[ReactNative](https://reactnative.dev/)はFacebookが開発したモバイルアプリケーションフレークワークです。
Reactの機能をネイティブアプリに使うことができ、マルチプラットフォーム対応で、JavascriptでiOSアプリとAndroidアプリを作ることができます。Javascriptを使うモバイルアプリケーションフレークワークはMonacaやCORDOVAなどいくつかありますが、ReactNativeの私的なメリット・デメリットは下記です。
### メリット
**・ネイティブアプリ並の速さが出る**
大学生が1週間でFlutterアプリを学んでリリースした過程(7日目)
こんにちはシオンです。
ついに最終日がきました。
ここまで読んでくださって本当にありがとうございます。
思いつきで始めたこの企画ですが、いい感じにFlutterの勉強になったし、記事を書く楽しさも感じられて始めてすごく良かったなと感じています。
ですが、今日アプリが完成しないことには終わるに終われませんので、引き続きラストスパート頑張りたいと思います。#目次
#####■完成までにやること
#####■路線変更:AppStoreへアップする
#####■いよいよ審査!
#####■まとめ#■完成までにやること
今日アプリを完成させるためにやらなければいけないことを先にまとめておきます。
大きくやることを分けると
**①アプリのコードを書ききること。**
**②リリース申請をすること。**
この2つになります。では、それぞれ進めていきます。
##①アプリのコードを書ききる
現状画面を全て作成し終わって、画面遷移まで実装できました。
残る機能は以下の通りです。
**1. 2画面目でストレスLvを表示**
**2. 3画面目に2画面目で入力した愚痴タイトルを表示**
有名人と対戦してる気分が味わえるオセロアプリ作ってみた
対戦相手の名前を入力するとランダムで画像を持ってくるオセロアプリを作りました。
![ダウンロード (3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566570/bacc40f3-24c2-24b7-9ff2-8eeb2fe1dcd6.png) ⇒ ![ダウンロード (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566570/acaf382a-ddf4-cf4d-3339-495cfcac9aa5.png)名前を入力するとgoogleの検索結果から画像を取得してきます。
これを使えば憧れの「石原さとみ」さんや「綾瀬はるか」さんとオセロで対戦気分を味わえる!
カワイイ!ヤッター!#遊んでみた感想
こみ上げる虚無感。
作り始めた時は素晴らしいアイデアだと思っていたのですが。#使用したもの
Google Custom Search API
遅延処理(Handler)
非同期処理(AsyncTask)#
スマホもPCの一員としてファイル同期したいじゃない?
[前回の続きです。](https://qiita.com/ykato/items/0939cbae9ce338a26914)
前回はGo言語のお力を借りてWindows、Linuxが載ってるデバイス間は同期できたねー
でも僕らはたいてい他のコンピューターも抱えているハズ。### そう、スマホ!
こいつも前回のエコシステムに乗っけられればもっと家庭内ネットワークはいいものになるハズ。
PC達とスマホを同期する機会なんて無いって?そうでしょうか??僕は– NASに溜め込んだMP3をランダムで引っこ抜く
– PC側でゲインとか音質とかバッチ処理で変換処理して標準化
– スマホに転送するって事をよくやるので必要で、**こんな使い方が今回のツールを作る出発点だったりします**。
# でけた!
![andoukie.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189193/921623b7-591c-a207-42ad-d28caf0d0302.gif)
ConstraintLayout入門その1 – RelativeLayoutとの違い
2020/07/26(Sun): [ConstraintLayout入門その2](https://qiita.com/yamadacsa/items/4364f4bc09c5a57a3fcf)の作成に伴い、リンクの追加、および若干の説明の追記を行いました。
## ConstraintLayoutを使う理由
2016年からAndroidサポートライブラリによって提供されているConstraintLayoutは、非常に細かい制約の記述を用いた複雑なレイアウトを可能にします。FrameLayoutやLinearLayoutとの違いは、子Viewに対して親Layoutとの関係だけでなく、複数の子View同士の関係を記述することで細かく位置取りを制御できる点です。
しかし、そのようなレイアウトなら昔からRelativeLayoutで提供されています。にもかかわらずConstraintLayoutが新たに開発された理由はいくつかありますが、まずはConstraintLayout入門の手始めに、RelativeLayoutではサポートされていなかったレイアウトXMLの書き方を端的に示す例を紹介
FlutterFragmentを設置したらToolbarがStatus barにめり込んだ。対処法を解説。
Androidネイティブなアプリの一部機能をFlutterで開発するために、FlutterFragmentを設置しました。そうしたらAndroidネイティブなToolbarがStatus Barにめり込んでしまいました。
# 解決方法
レイアウトファイルに `android:fitsSystemWindows=”true”` 属性を設定すればめり込まなくなります。
“`activity_pager.xml
ViewPager2のFragmentのtag名はf0, f1, f2
ActivityからFragmentのメソッドを呼びたいときは、[FragmentManager](https://developer.android.com/reference/androidx/fragment/app/FragmentManager)クラスの[findFragmentById](https://developer.android.com/reference/androidx/fragment/app/FragmentManager#findFragmentById(int))メソッドまたは[findFragmentByTag](https://developer.android.com/reference/androidx/fragment/app/FragmentManager?hl=ja#findFragmentByTag(java.lang.String))メソッドを使ってFragmentの参照を取得してメソッドを呼び出すことが公式で案内されています。
[アクティビティと通信する](https://developer.android.com/guide/c
オレトラストネットワークでちゃっちゃとファイル共有
家にファイルサーバーってあります?動かしたいけどねえ・・って事無いですか??
– **電気代とか置き場所**とかの理由で外付けUSB使ってる
– SaaSのファイルサービスはどうしても**容量課金や通信パケ代**が気になる本来、ファイルサーバーで最重要であるべきセキュリティ要件よりも、
もっと他の理由で使ってなかったりしませんか?
でも家庭ネットは信頼してますよね?だから、もっとこう、サクっと共有してえなあ。#
### そういう人向けにAirDopあるやん
はい。でもあれってベンダーロックされてる感がないすか?
対応してないマイコンだの機器があるとやっぱファイルサーバーあればなーって思う。
OSSが頑張って実装してる例もあるけど対応機器がどんどん増えてく気はしないし。### 我々は殆どの機器がしゃべれるプロトコルを知ってるはず、そうHTTP!
有線、無線関係なく、IPがあれば準備OK。それがHTTPの破壊力のスゴさ。
HTTPベースで超簡単にファイル共有!
~~車輪の再発明感ありますが、~~**UXサイドに倒した
大学生が1週間でFlutterアプリを学んでリリースした過程(6日目)
こんにちはシオンです。
今日で6日目、残すところあと2日となりました。
計画通りに行けば、コードをかけるのは今日が最後の日です。現状としては5画面あるうちの2画面の画面構成まで、処理はひとつもかいていなく、また書き方もわからないため、進捗率としては5%…よくて8%ほどでしょうか。やばいですね。でも期限はもう決まってしまっているのでやり切りましょう。途中までで終わらないよりも、終わらせる。今回は60点でもいいから終わらせることが大事なのです。
では、時間がないので(本当に!)やっていきます。
#目次
#####■実装する処理の確認
#####■画面遷移を学ぶ
#####■残りの画面を作って画面遷移のルートを繋ぐ
#####■まとめ#■実装する処理の確認
昨日3画面の実装をしてFlutterでの画面の配置に関してはなんとなくわかってきました。
残り3画面は処理を実装するのと同時にプログラミングしていきます。
今回実装する残りの処理としては
**・画面遷移**
**・入力した文字を読み取って表示**
**・カウントアップ**
この3つです。実装するためにはど
Groupieでclickイベントを実装する
Groupieでのレンダリングは前に実装したんですが, Groupieでレンダリングしたリストに対してClickListenerをつけていきたいと思います.
github:[https://github.com/WallyNegima/android_practice:embed:cite]
## interfaceとAdapterを用意する
クリック時の振る舞いはinterfaceとしてAdapterに渡してあげます.
adapterは受け取ったinterfaceをListのそれぞれのItemに更に渡してあげる感じです.用意するinterfaceはこんな感じです. 今回はMainActivityの中に作りました
“`
interface MainListItemClickListener {
fun onItemClick(
itemId: String
)
}
“`adapterはGroupAdapterを継承します.
この時, GroupieでレンダリングするItemにlistenerを渡してあ
【Android】遅延処理・非同期処理を使って時間差でViewに反映させる
#Handler(遅延処理)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566570/ff283bfb-45cf-0193-fdab-ec4ba4525490.png)3つのTextViewに1秒ずつテキストをセットしてみます。
“`java:MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {
private Handler handler = new Handler();@Override
protected void onCreate(
機種変更をするときに気をつけるべきこと
機種変更したときに,失敗したな..っと思ったことがあったため,次変更するときの備忘録として残しておきます.そんな高性能でなくても低スペックでもいいよ..って思っていたのですが,実際に普段使っている機能がなかったときにものすごく不便に感じたため,押さえておくべき機能を列挙しておきます.当たり前が当たり前じゃなかったんやな..
## 生体認証が付いているかどうか
### 携帯の解錠
今や,携帯にロックをかけるのが当たり前になってきいますが,番号やパターンを入力するのは面倒.そこで,生体認証ですぐに携帯のロックを解除することができます.
– 指紋認証
– 顔認証
実用化されている認証方式はこの2つ.特に指紋認証は便利.マスクをつけていても,暗い場所にいても安定的に認証することが可能です.### パスワード管理アプリ
また,パスワード管理アプリの認証のマスターパスワードとして,生体認証に置き換えることができます.今やさまざまなサイトやアプリで会員IDとパスワードの設定が行われており,パスワード管理アプリを使われている方も多いかと思います.そのマスターパスワードをいちいち入力するのは面倒な
android firebase Auth email&passwordでログインする処理memo
#onCreateメソッド内でFirebaseAuthのインスタンスを取得しておきます
“`kotlin:LoginActivity.kt
class LoginActivity : AppCompatActivity() {companion object {
private const val RC_SIGN_IN = 120
}private lateinit var loginViewModel: LoginViewModel
private lateinit var mAuth: FirebaseAuth
private lateinit var googleSignInClient: GoogleSignInClientoverride fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)//onCreateメソッド内でFirebaseAut
Jetpack Navigationで最初のフラグメントでも戻るための左矢印を表示する
メイン画面から設定画面が呼ばれるアプリがあります。すべての画面をJetpack Navigationで作っていたのですが、理由あってJetpack Navigationの適用範囲を設定画面のみにしました。
そうなるとJetpack Navigation上でトップとなる画面でも、前の画面に戻るための左矢印を表示したくなります。![device-2020-07-24-060057.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/334798/f336c68d-c0c5-03ac-bff0-f2b3c8ce5f2c.gif)
現状のツールバー左矢印表示のためのコードはこのようになっています。
Jetpack Navigationのバージョンは2.3.0です。“`SettingActivity.kt
class SettingActivity : AppCompatActivity() {private lateinit var appBarConfiguration: AppBar
[Android]AndroidX Preference Library を使って設定画面を作成する
# はじめに
Android では Preference Library を使うことで簡単に設定画面を作ることができるようになっています。今回は Preference Library をどのように使えるのか簡単にまとめたいと思います。
# インストール
Preference Library を build.gradle(app) の依存関係に追加します。追加しなくてもコード補完候補にクラス名称が出てくることがありますが古いライブラリが参照されて上手く動作しないので依存関係は追加したほうが良いです。
“`groovy
dependencies {
def preference_version = “1.1.1”
impleme
AndroidのマルチモジュールでGithub Actionsを使ってLintの結果をPRのコメントに表示する方法
# はじめに
はじめまして。どすこいです。
Qiita初投稿ですので、わかりにくい部分や間違っていることがあればコメントでご指摘ください。今回、紹介するのはAndroidのマルチモジュールプロジェクトでGithub Actionsを使ってLintチェックをし、その結果をプルリクエストのコメントに表示していく方法です
個人的につまづくところがあったのでメモとして残しておきたく、投稿しました。
# 本記事で説明しないこと
シングルモジュールでのLintチェック。およびPRのコメント表示
Github Actionsの使い方(こちらに関してはまた今度記事にしたいと思います)# 環境
まずローカルで試したいので
Rubyをインストールします。
なぜRuby?となると思いますが、後々わかります。その後、
“gem install nokogiri
gem install danger
gem install danger-android_lint
“
を実行してください。
nokogiriはLintファイルをまとめるためです。Bundlerで管理しろよ!と思う方もいると