新しいアプリをリリース! ブルーライトから守る
本日、開発していたアプリをリリースしました。
「ブルーライトから守る」というアプリで、スマホから発生するブルーライトを軽減して目を守るアプリです。
よかったら使ってみて下さい。
このアプリを作ることで、色々な技術を身に着けることができました。
例えば、
・ショートカットの作成方法、ホーム画面からショートカットを作成する方法
・アプリ内課金の細かい制御
・アニメーション(少しずつプロパティの値を変更していく)方法
・通知にボタンをつける方法
・マテリアルデザインのテーマの使い方
などです。
これらの技術を応用して、また新しいアプリを作りたいと思います!
時間ができたら忘れないうちにブログにまとめます。
Raised Button の作り方(持ち上げ型ボタン)
現在は新しいアプリを開発中です。
そこでマテリアルデザインのボタンを使いたいと思い、どのように実装すればいいのか調べて分かったので書きます。
方法としては、テーマにマテリアルデザインのものを指定してあげるとできるみたいです。
実際に実装した例を載せます。
今回は2種類のボタンを作成しました。
1つ目がオレンジ色のボタン
2つ目が白色のボタン
です。
【実装方法】
①styles.xmlにボタン用のスタイルを作成します。
ここではAccentButtonStyleとNegativeButtonStyleの2種類です。
parentにマテリアルデザインの「Theme.AppCompat」か「Theme.AppCompat.Light」を指定します。
違いは、文字を黒ベースか白ベースにするかになります。
また、以下のitemに好きな色を指定します。
- colorButtonNormal :ボタンの背景色
- colorControlHightlight :プレスしている時の色
styles.xmlの一部
<style name="AccentButtonStyle" parent="Theme.AppCompat">
<!--ボタンの色-->
<item name="colorButtonNormal">#FF9100</item>
<!--ボタンをプレスしている時、シークバーをプレスしている時の色-->
<item name="colorControlHighlight">#FF6D00</item>
</style>
<style name="NegativeButtonStyle" parent="Theme.AppCompat.Light">
<!--ボタンの色-->
<item name="colorButtonNormal">#FAFAFA</item>
<!--ボタンをプレスしている時、シークバーをプレスしている時の色-->
<item name="colorControlHighlight">#FFAB40</item>
</style>
②ボタンにテーマを指定します。
先ほど作成したテーマをマテリアルデザインを適用したいボタンに指定します。
android:theme="@style/AccentButtonStyle"
例は載せていませんが白色のボタンの場合は以下のテーマを指定します。
android:theme="@style/NegativeButtonStyle"
activity.xmlの一部
<Button
android:id="@+id/btnSavePattern"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/button_horizontal_padding"
android:paddingRight="@dimen/button_horizontal_padding"
android:text="保 存"
android:theme="@style/AccentButtonStyle"
/>
以下が実装したイメージとなります。
・通常時
・ボタンをプレス時
・ボタンが非活性の時
・白色のボタンとオレンジ色のボタン
全体のアプリのテーマに「colorButtonNormal」を指定してもボタンは変更できますが、すべてのボタンが同じ色になってしまうため、一つ一つのボタンにテーマを指定しています。
Theme.AppCompatを使っていますので、Android5.0より前のバージョンでもマテリアルデザインが適用されます。
以上になります。
よかったら試してみて下さい。
Gitのリモートリポジトリからプロジェクトを作成する手順【AndroidStudio】
もし、プロジェクトのフォルダが消えてしまった場合、リモートリポジトリからプロジェクトを復活させる手順をメモしておきます。
(プロジェクトフォルダは1時間おきにバックアップを取っているため、この手順を使うことはないと思うのですが。)
「VCS > Checkout from Version Control > Git」を選択する。
以下の設定を行ってCloneボタンを押下する。
「Git Repository URL」にリモートリポジトリのパスを指定する。
「Parent Directory」にプロジェクトを作成するフォルダの親フォルダを指定する。
「Directory Name」にプロジェクトのフォルダ名を指定します。
Yesボタンを押下して、完了です!
Gitで以前のバージョンに戻す方法【AndroidStudio】
以前のバージョンに戻したい時の手順をメモをしておきます。
◆リモートリポジトリにpushしていない場合
「2回目チェックイン」をしたが、まだリモートにpushしていない状態で、「初回チェックイン」に戻したい場合。(HEADは2回目で、origin/masterは初回のまま)
この場合は簡単です。
戻したいバージョンを右クリックし「Reset Current Branch to Here...」を選択する。
「Hard」を選択して、Resetを押下する。
すると戻すことができます。
※2回目チェックインの履歴はなくなってしまいます。
◆リモートリポジトリにpushしてある場合
「2回目チェックイン」をして、リモートにpushした状態で、「初回チェックイン」に戻したい場合。(HEAD、origin/master共に2回目の状態)
先ほどと同様にResetするとHEADが「初回チェックイン」に移ります。
そこで修正して3回目チェックインをします。
(修正しないとチェックインができなかったので。)
この「3回目チェックイン」をpushしてマージすれば、リモートリポジトリにも反映させることができると思います。
思いますというのも、マージをキャンセルしたら以下のような状態になってしまったからです。
この状態になるとpushができなくなってしまいました。
色々いじってみたらできましたので、その方法も書きます。
まず、赤枠の部分をクリックします。
「origin/master > Merge」を選択します。
マージすると以下のようにマージしたバージョンが作成されます。
マージしてできたバージョンはpushすることができました!
以上、以前のバージョンに戻す方法でした。
AndroidStudioでのバージョン管理【Gitを使用】
新しいアプリを作ろうとしたら、久しぶりにプロジェクトの作成だったため、バージョン管理の初期設定のやり方を忘れてしまいました。
そこでGitでのバージョン管理の初期設定を今後のために残したいと思います。
(Gitでのバージョン管理は慣れていないので手探りで作業している状態で正しいのか分からないが。。。)
◆初期設定の主な流れ
①AndroidStudioのプロジェクト作成
②Gitでのバージョン管理の登録(ローカルリポジトリの作成)
③Gitのリモートリポジトリ用のフォルダを作成
④リモートリポジトリに登録(pushする)
①プロジェクトの作成
②Gitでのバージョン管理の登録(ローカルリポジトリの作成)
「VCS > Enable Version Control Integration...」を選択する。
「Git」を選択して、OKを押下する。
「Unversioned Files」を「Default」にドラッグする。(バージョン管理の対象とする。)
「VCS」を押下する。
コメントを入れて、Commitを押下する。
コミット完了!
③Gitのリモートリポジトリ用のフォルダを作成
フォルダを作成して、右クリックで「Git ここにリポジトリを作成」を選択する。
作成するフォルダは「xxx.git」のように名前の最後に「.git」を付けた方がいいみたいです。
(このフォルダはバックアップされるようにOneDriveのディレクトリに作成しています。)
④リモートリポジトリに登録(pushする)
「VCS > Git > Push...」を選択する。
「Define remote」を選択して、リモートリポジトリのパスを指定する。
Pushして完了!!
以上で初期設定は完了です!
Gitでバージョン管理するには、別途GitをWindowsにインストールしないといけません。
またリモートリポジトリを作成するのに「TortoiseGIT」というソフトをインストールしています。
使い方はいつか書きたいと思います。
デバッグ時に不明なエラーが発生
本日、久々にAndroidStudioを起動して、デバッグしようとしたら、意味不明なエラーが発生して、デバッグができず困りました。
一応、解決したのでメモします。(解決と言っていいのか分かりませんが。)
◆エラー内容
Cannot reload AVD list: cvc-enumeration-valid: Value '360dpi' is not facet-valid with respect to enumeration '[ldpi, mdpi, tvdpi, hdpi, 280dpi, xhdpi, 400dpi, xxhdpi, 560dpi, xxxhdpi]'. It must be a value from the enumeration.
Error parsing C:\Users\*****\AppData\Local\Android\sdk\system-images\android-23\android-wear\armeabi-v7a\devices.xml
・・・
英語なのでよく分かりませんが、意味としては、「AndroidAPI23(Android6.0)のエミュレーターのAndroid-Wearで”360dpi”が読み取れない」ということだと思います。
最初は何かのAPIが最新の状態になっていないのかと思い、Android SDK Managerを使ってすべてを最新化したのですが、エラーは直らず。。。。
色々と試行錯誤してたどり着いたのがAndroid Wearのエミュレーターを削除するというのでした。
削除したら問題なくデバッグができるようになりました!
私はAndroid Wearのエミュレーターは使っていないので、特に削除しても問題はありませんが、使っている人はどうしたらいいのでしょうか。
エミュレーターのバグなのでしょうか。
とりあえず使えるようになって、よかったです。