Kotlin

今年一躍注目を浴びることとなったKotlin。UdemyでJavaプログラマ向けのコースが94%引きだったので購入した。

個人的にはもう少しアカデミックなedXの方が好みだけどコースがないのでこちらに。今朝Udemyでコースを探していて$200だったのが同日夜に$12なのでお買い得感はある。コースの内容と質次第ではあるけれど。

さて、Kotlinでマヤのそろばんアプリを作成してみようかな。

 

gitとオンライン・ストレージを使ったソースコード管理

gitを使い始めたのは比較的最近だ。博士論文の時に使っていればなぁ。Latex、StataとRのソースコードの管理は大分楽だったはず。

まぁ、そんなこと言っても仕方ないけど。で本題。gitだけど初めはGithubを使っていた。でもここってプライベートのレポジトリの作成は有料版のみで、また、その他の理由もあり他の方法がないかと模索。

で考えついたのがオンライン・ストレージをレポジトリとして利用出来ないかということ。私の場合、Google Driveは大学のお陰でほぼ無制限で使えるのでこれを活用しない手は無い。他からのアクセスもGithubや他のサービスと比べて楽そうだし。

ここではGoogle Driveを使って紹介するけど、他のストレージ・サービスでも同じ方法が使えるはず。One DriveとかDrop Boxとかね。

gitの説明は省くとしてWindowsの場合、gitをインストールするところから始まる。ココでダウンロード出来ます。Cygwinにもgitが含まれているらしいけど、最近使ってないんだよなぁ。

gitの準備が出来たら次にTortoiseGitをダウンロードしてインストール。

ここからが本題かな。

まずは管理したいプロジェクトが保存してあるフォルダをローカル・レポジトリとする。

フォルダを選択して

右クリックすると

上の画像の様に「Git ここにレポジトリを作成」という選択肢があるのでこれを選択。その際、以下のダイアログが表示されるはず。「Bareを生成」という項目のチェックはされていないと思うけどそのままで。その理由は括弧内を見れば分かるはず。これは作業ディレクトリなので。

OKを押すと次のメッセージが表示される。

フォルダを開いてみると

.gitというフォルダが作成されていることに気付く。このフォルダ以外の全てのファイルを選択して

右クリックを押すと

追加という項目が現れるはずなので選択する。

それから「全てを選択/解除」にチェックを入れて

OKを押す。

追加が無事終了したらコミットへ。

メッセージ欄に何かしらの記入をする必要がある。私は日付と変更内容を記入する様にしている。コミットしたらプッシュ画面が現れるはず。これを一旦キャンセルして消す。

次にローカル・レポジトリのフォルダがあるディレクトリに戻る。そこで何も選択しないで右クリックを押すと

「Gitクローン(複製)という項目を選択する。すると下記のウインドウが表示される。URLにローカル・レポジトリのフォルダのアドレス、ディレクトリにはGoogleDriveのフォルダ内に作成したリモート・レポジトリのフォルダを選択。通例としてはローカル・レポジトリのフォルダ名に「.git」を付ける。ただ、これは任意。

ここで気をつけなくてはならないのが、今回は「Bareレポジトリにクローン」にチェックを入れること。リモート・レポジトリは作業ディレクトリではないから。ここのチェックを忘れないように!

こういうこと。これでやっとOKを押せる。

ウインドウを閉じる。最後にローカル・レポジトリからリモート・レポジトリへのプッシュを行う。ローカル・レポジトリのフォルダを選択して右クリック、TortoiseGitを選択するとプッシュの選択肢が現れる。

下記のウインドウが現れたら「リモート」のディレクトリを指定。勿論、先程作成したリモート・レポジトリのフォルダを選択。

下のウインドウが出るので

URLにリモート・レポジトリのディレクトリを記入。

OKを押すとプッシュ画面が現れるので

再度OKを押す。しっかりプッシュ出来れば成功!

リモート・レポジトリにあるものをローカルに引っ張って来るには逆の方法を使えば良い。リモート・レポジトリから新規に指定したローカル・ディレクトリにコピーする形となる。

色々な手順を踏まなければならないけれど、Google Driveやメジャーなストレージ・サービスに限定されることもなく、手軽にGitを使えるのでこの方法は重宝している。

 

AdMobをアプリ登録前に実装する方法(アンドロイド:2017年4月現在)

アンドロイド・アプリにAdMobを実装する際に既にアプリがGoogle Playに登録されていることを前提としていることが多いけど、これが少しやりずらく感じる。というのも登録してからAdMobの広告とアプリをリンクしようとしても、AdMobのデータベースに登録したアプリが現れるのに二、三日要するからだ。全ての作業を一度に行いたいと思うせっかちな人には向かない。。

ということで、広告の実装からアプリ登録前までに行う方法を紹介。この方法だと、その後アプリを登録して、リンクの作業を数日後に行えば良いのでAdMobの実装をアプリ登録数日後まで待つ必要がない。

事前準備として

  • Android Studio 1.0 以降を実行すること
  • Android レベル 9 以降向けに開発すること
  • Android Studio プロジェクト

が求められる。

AdMobのサイトに行きまずは収益化ボタンを押す。

 

収益化のページ上で「新しいアプリを収益化」ボタンを押す。

 

下のページが現れるので

 

「アプリを手動で追加」を選択してアプリ名を記入。それからプラットフォームを選択。

 

「アプリを追加」ボタンをクリック。

広告のフォーマットを選択。それから広告ユニット名の記入。私は単純にアプリ名を記入しているが広告を2つ以上作成する場合は、各々分かりやすい名前を付ける必要がある。

保存したら次の画面が現れるはず。広告ユニットIDを取得出来る。このIDが後ほど必要となる。

「FIREBASEにリンク」をクリック。スキップすることも可能らしいけれど、ここではFIREBASEを利用することとする。

パッケージ名を入力。

これまでに同じパッケージ名を用いたプロジェクトをFirebaseで作成しているなら次の選択肢が現れる。なければプロジェクトを新規作成する。

 

次に1.の「こちら」をクリックして設定ファイル(google-services.json)をダウンロード。

 

Androidプロジェクトにこのファイルを取り込む。Android StudioでProjectを選択。

 

先程保存したgoogle-services.jsonをコピーして

Android Studio上の「app」を選択した上でペーストする。

 

google-services.jsonが「app」下に配置されているはず。

 

「Project」から「Android」に変更して

Projectレベルのbuild.gradleを開く。

上記のコードを記入。

こんな感じ。

 

それからAppレベルのbuild.gradleを開く。

 

まずはこれを

ここに記入。それから

を最後の行として記入。

 

build.gradleを同期する。

 

次にstrings.xmlを開き

先程取得した広告ユニットIDを含むコードを挿入。

 

広告を入れたいアクティビティのレイアウト・ファイルを開いて

を記入。

AdViewのコードも追加する。

 

続いて広告の読み込みに必要なネット接続のパーミッションの取得をマニフェスト・ファイルで行う。

この二行を追加。

 

広告を表示したいアクティビティ(.java)にコードを記入。

まずはインポートするコード。

それからAdViewオブジェクトの宣言。

最後にonCreate内に以下のコードを追加。

分かりやすい場所であれば何処でも。

エミュレータで広告が表示されるか確認してみる。

 

アプリをGoogle Playに登録してから数日後に広告とアプリをAdMob上でリンクする。

「アプリのリンクを設定」をクリックして

アプリを検索して見つかれば選択して終了。色々あるけど慣れれば簡単!