- 1. 内部アプリ共有したアプリでGoogleログインができない
- 2. シンボルを見つけられません。import android.support.v4.app.ActivityCompatの読み込みエラー
- 3. 新卒プログラマの学習ログ 〜 其の二 〜
- 4. ConstraintLayout入門その3 – percent
- 5. *Android*ピンチイン・ピンチアウトを検知する
- 6. android webviewをchromeみたいに使う
- 7. GitHub Actions で Android アプリを手動ビルドできるようにする
- 8. 【個人開発】FlutterとFirebaseでサボり防止アプリを作った
- 9. Codemagic でモバイルアプリの CI/CD を始めましょう
- 10. FlutterFragmentとViewPagerの組み合わせはonResumeのタイミングで難しかった
- 11. 【Android/Kotlin】ViewModel・LiveData基本
- 12. ゲームアプリ制作におけるベジェ曲線の可能性
- 13. Toolbarのメニューの文字の色だけ変える方法
- 14. Re:ゼロから始めるbuild.gradle.kts生活
- 15. kaptでjavaの予約語のプロパティを使わないほうがいい
- 16. Android 11でShortcutBadgerを使えるようにする
- 17. Unit Test 探求記(その3)
- 18. 中華の闇 携帯電話
- 19. Unit Test 探求記(その2)
- 20. Unit Test 探求記(その1)
内部アプリ共有したアプリでGoogleログインができない
# 結論
内部アプリ共有では、ビルド時に指定した署名ファイルのSHA-1フィンガープリントではなく、内部アプリ共有用のフィンガープリントで、OAuthクライアントを指定してやる必要がある。# 手順
AndroidでGoogleログインする際には、Google Developer ConsoleにてOAuthクライアントの認証情報を設定してやる必要がありますよね。
その際に、アプリの署名のSHA-1フィンガープリントを設定する項目があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102032/8636dbf5-6a80-2662-f82a-a082cb5f1503.png)内部アプリ共有でテスターにアプリを配信する際、この項目を内部アプリ共有用のSHA-1フィンガープリントにしてやる必要があります。
本番用の設定を変更して本番のアプリが動かなくなっても困るので、「内部アプリ共有用」とでも名前をつけたOAuthクライアント認証情報を新たに作成してやるのがいいかと思います。
シンボルを見つけられません。import android.support.v4.app.ActivityCompatの読み込みエラー
ReactNativeでAndroidのネイティブモジュールを実装しようとしたところ、前使っていたコードが動かないことがわかりました。
“`bash
/path/project/android/app/src/main/java/com/project/TestModule.java:28: エラー: シンボルを見つけられません
import android.support.v4.app.ActivityCompat;
^
シンボル: クラス ActivityCompat
場所: パッケージ android.support.v4.app
“`というエラーがでました。
どうやら、**android.v4**はサポートが切れ、
代替えとして、**androidx.**に移行する必要があるようです。調べたところ、やることは2つで、
① dependencyの追加
build.gradleのdependenciesに
“`gradle
implementation “androidx.core:cor
新卒プログラマの学習ログ 〜 其の二 〜
#App Architecture
Codelabsをとりあえず一周、手を動かしながら進めてみました。その中で、書かれているコードのパターンが、MVVM(Model-View-ViewModel)と呼ばれるアーキテクチャです。
Googleより推奨されているライブラリを用いた実装パターンで、これに従うことでメンテナンス性、可読性に優れたプログラムとして開発を行うことができるとされています。
しかし、普及としては割と最近のようで、Androidアプリ開発者用の参考書ではまだまだ異なるパターンの記述が多い印象です。##MVVMとは?
先述の通りModel-View-ViewModelを表しています。###Model
データを管理する役割を担います。
APIやデータベースを扱う際のDaoやdataクラスに当たります。###View
UIコントローラーの役割を担います。
画面表示や遷移、Fragmentの切り替えやユーザーのアクションを検知するリスナーをここで設定します。
Viewの管理はDataBindingのライブラリによって行っています。
下記のコードではフラグメントでの
ConstraintLayout入門その3 – percent
ConstraintLayoutを使用するための設定については、[ConstraintLayout入門その1](https://qiita.com/yamadacsa/items/a4fcf4de9982111cdb7c)をご覧ください。
## ConstraintLayout自動変換があればFrameLayoutやLinearLayoutを捨てられる?
Android Studioは、レイアウトXMLファイルに書かれた既存のViewを他のViewクラスに自動変換する機能を持っており、これを使ってLinearLayoutなどをConstraintLayoutに変換することができます。しかし、本稿執筆時点の最新安定版のAndroid Studio ver.4.0.1でこの機能を試してみた結果は期待はずれ、とても自動変換だけでそのままアプリに使えるConstraintLayoutになってくれません。LinearLayoutで垂直ないし水平に並んだViewの並びをConstraintLayoutの制約表現に変える機能だけならまだしも、LinearLayoutでよく使われる “`andr
*Android*ピンチイン・ピンチアウトを検知する
#はじめに
こんにちは.今回は,Androidでピンチ操作を検知しようと思います.ピンチイン・ピンチアウトを判別する方法について解説します.#前提
開発環境は以下の通りです.
*Android Studio 4.0.1
*targetSdkVersion 28
*Google Nexus 5x#ピンチイン・ピンチアウトの判別
ピンチ操作の検知には,“`ScaleGestureDetector“`を使用します.第一引数にContext,第二引数には,“`OnScaleGestureListener“`インタフェースを実装したクラスのオブジェクトを指定します.今回は,匿名クラスを使用して,インタフェースを実装します.“`java
this.scaleGestureDetector = new ScaleGestureDetector(this, new ScaleGestureDetector.OnScaleGestureListener() {
// ピンチ操作中に繰り返し呼ばれる
@Override
public boolean onSca
android webviewをchromeみたいに使う
#まずは全体のコードはこんなかんじです。
“`kotlin:MainActivity.kt
package com.sample.android.webviewimport androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.KeyEvent
import android.view.WindowManager
import android.webkit.WebView
import android.webkit.WebViewClient
import com.sample.android.webview.Rclass MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.a
GitHub Actions で Android アプリを手動ビルドできるようにする
下記のようなyamlファイルをAndroidプロジェクトのリポジトリに置きます。
“`yaml:.github/workflows/manual-build.yml
name: Manual build
on:
workflow_dispatch:
inputs:
variant:
description: ‘Build variant’
required: true
ref:
description: ‘branch name|tag name|commit SHA’
required: true
default: masterjobs:
build:
name: Build
runs-on: ubuntu-18.04
steps:
– name: Check out
uses: actions/checkout@v2
with:
ref: ${{ github.ev
【個人開発】FlutterとFirebaseでサボり防止アプリを作った
先日、個人開発アプリをリリースしました!やったね!!!
審査も通りまして、現在App StoreとPlay Storeで配信されております。
せっかくなので、利用した技術のメリットと注意点をまとめておこうと思います。
# 作ったアプリ
これです。
広報用ページも作ってみたのでリンクを貼っておきます。
広報用ページはスマホで見る用にレイアウトしてます。
[監視し合う会 〜お互いサボらないようにみんなで作業しよう〜](https://kanshi-shiau-kai-app.web.app/)
英語名: Procrastinators Watch Mutually
![kanshi_feature_1024_500.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/85139/23774597-120a-15dc-2a0e-808fe874427a.png)
## 解決したい課題
やらなきゃいけないことがあるのに、なかなか取り組めずにグダグダしてしまう経験がみなさんあると思います。
で
Codemagic でモバイルアプリの CI/CD を始めましょう
この記事は、Codemagic の運営元である Nevercode Ltd の依頼で作成しました。2020/7/6 に公開された [オリジナルの英語記事](https://blog.codemagic.io/getting-started-with-codemagic/)の日本語訳に加え、冒頭に私のコメントを、末尾におすすめの Codemagic 関連の日本語記事へのリンクを列挙しています。
—
Codomagic は、[今年の2月に発表された Flutter UX 調査チームによる Q4 2019 の調査結果](https://medium.com/flutter/improving-flutter-with-your-opinion-q4-2019-survey-results-ba0e6721bf23)において、開発者が CI/CD で採用しているサービスのトップ3に挙げられており、(Codemagic、 Github Actions、 GitLab)、その中でも満足度が最も高かったことが示されています。
Codomagic は、Google と提携して Flutter
FlutterFragmentとViewPagerの組み合わせはonResumeのタイミングで難しかった
[ViewPager2](https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2)を使って**2ページ目以降**に[FlutterFragment](https://flutter.dev/docs/development/add-to-app/android/add-flutter-fragment?tab=forward-activity-calls-kotlin-tab)を設定すると、完全にページ遷移するまではFlutterFragmentが描画されず真っ白になります。一度表示すると真っ白になりません。
![device-2020-07-28-223018.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/334798/7026b8a7-1e21-3bd4-af45-4e8b3b41f14f.gif)
このように遷移途中でもFlutterFragmentが描画されて欲しいです。
![device-
【Android/Kotlin】ViewModel・LiveData基本
#ViewModelとは?
ViewModelとは、UI関連のデータを保存し管理してくれるクラスです。分かりやすい活用方法でいうと、画面のローテーションをしてもUIを保持してくれたりします。ローテーションに対してUIを保存する方法として、`onSaveInstanceState() `メソッドをアクティビティのライフサイクルに組み込むという手がありますが、複雑なデータは保持できない+ライフサイクルを考えなければならないという点で、リスクがあります。そこで、ViewModelが大活躍します。以下の図を見てください。
![https___qiita-image-store.s3.amazonaws.com_0_88858_68e99b0c-215d-325e-1f75-6875fa580031.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658219/7a8f1174-78a6-cbc8-b66a-5b3ea7ab5dec.png)
この図は、ViewModelとActicvityのライフサイクルを表し
ゲームアプリ制作におけるベジェ曲線の可能性
## はじめに
### アプリの絵がぼやける理由
アプリを遊んでいて「絵がぼやけてる」と感じたことはありませんか?
解像度の大きな端末に乗り変えたら、お気に入りのアプリの表示がボケボケで、切ない気分になった人は少なからずいるのではないでしょうか?これは、アプリの画像素材のほとんどがペイント形式で作成されているからです。
ペイント形式とは画素を並びで保持する形式なのですが、拡大や回転による品質の劣化が起こります。例えば、**1280×720** のキャラクタの立ち絵がペイント形式で用意されていて、アプリが画面全体に表示させたとします。
解像度 **1280×720** の端末であればクッキリと表示されますが、**2560×1440** の端末だと画素が引き延ばされて画像がぼやけてしまうことになります。### アプリの文字がぼやけない理由
さて、こうも思ったことはありませんか?「文字だけやけにきれいに見える」
これは、文字がドロー形式で表示されているからです。
ドロー形式とは、データとして座標や色情報などを保持しておき、計算で絵を生成する形式のことです。先の
Toolbarのメニューの文字の色だけ変える方法
AndroidのToolbarのメニューの文字の色を変える方法でうまくいく方法が見つからなかったのでメモです。
## やりたいこと
こんな感じのことがやりたかった。
## やり方
styles.xmlに以下を記述“`xml:styles.xml