コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

こっとりーんっ

みんな〜おっはよ〜。朝だよー起きてー(投稿時刻 0時)。

おはよー!!起きてー!!カンカンカンカン!!カンカンカンカンカン!!朝だよ!!外明るい!!ねえねえ!!見て見て!!すごい!!外!!明るい!!!!カンカンカンカンカンカンカンカン!!カンカンカンカン!!起きてー!!カンカンカン!!


はい、おはようございます。すがすがしい朝ですね(夜明け前)。こんなすがすがしい朝はKotlinしたくないですか?やりたいですよね。やりましょう。

Kotlinでなにかつくります

Kotlin 触ってて文法しかいじっていないという驚愕の事実に気づいてしまったので、今日は超簡単な泥アプリを制作していきたいと思います。まず、利用するツールですがアンドロイド開発の定番 Android Studio を利用していきます。

公式
developer.android.com


そんでインスコして、起動して「Include Kotlin support」にチェック入れて、Kotlinのプロジェクト(Empty Activity)をなんやかんやして用意します。色々ファイルが生成されますが、ファイル群の大まかな内容は以下の通りです。

名前 説明
app>manifests マニフェストファイル(アプリに必要な基本情報を記述)
app>java Activity(アプリに動きを制御[コードをがりがり書く]するところ)
app>res UI(レイアウト関連のファイル)が置かれるところ
Gradle Scripts ビルド(実際に動くプログラムを書きだす)の設定とかそういったのがあるところ

やばい、適当すぎる。まあ細かいことは公式ドキュメントに日本語で書いてあるのでそれを確認しよう(丸投げ)。というわけでして、大まかにいじるところは「java」とかついているところと「res」とかついているところになります。

そんなわけで、まずはレイアウトをいじっていきます。xmlファイルを開くと勝手にレイアウト画面が表示されるようです。下のほうに「Design」と「Text」タブがあるのでそこでXML表示との切り替えができます。
f:id:andron:20180530072217p:plain

そういえば何のアプリをつくるか言ってませんでしたね。テキストを書き換えて月曜日判定アプリってやるのもいいですが、今回はボタンとかの動きの制御とかやっていきたいなと思うのでおみくじアプリでも作ることにします。

まずは、画面をこんな感じに整えて……。ボタンと結果だすところをつくります。
f:id:andron:20180531055513p:plain




次に、コードのほうを適当に書き書きしていきます。
アクティビティ.kt

package ****

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_omikuji.*
import java.util.*

class Omikuji : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_omkiji)

        val words = arrayOf("大吉", "中吉","小吉","凶","大凶")
        val rnd = Random()
        result.text = "ここに結果がでます。"
        button.setOnClickListener{
            result.text = words[rnd.nextInt(words.size)]
        }
    }
}

レイアウト.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Omikuji">

    <TextView
        android:id="@+id/result"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="1dp"
        android:text="結果"
        android:textSize="24sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="148dp"
        android:layout_marginLeft="148dp"
        android:layout_marginRight="148dp"
        android:layout_marginStart="148dp"
        android:layout_marginTop="137dp"
        android:text="占う"
        android:textSize="30sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

レイアウトはスゲー適当に書いているので冗長だ。というよりもKotlinが短すぎるんですよね…多分。id 直接呼び出すことでコードがめちゃめちゃ短くなる、なお推奨される行為かは不明。ちなみにJavaで泥アプリつくったことないので感想は適当です。


んで、これを実行するとおみくじアプリ完成です。

f:id:andron:20180531061359p:plainf:id:andron:20180531061402p:plain
試しにボタン押して確認したら大凶でした (笑)。


まあ、勢いで雑に作ってみましたがこんな感じで泥アプリってさくっとできちゃうらしいですよ。これはもうKotlinやるしかないですね。そういえば、僕が普段利用しているドットインストールでも似たような講座あるんですけど、あれもこんな感じのこと書いてあるんですかね?無課金勢なんでよくわからんのです。

ちなみに、こちらのバージョンはAndroid Studio 3.1.2 / Kotlin 1.2.30 です。


おしまい