LoginSignup
2
0

More than 3 years have passed since last update.

ついにクリスマスイブ、この日を待っていました。アジャイルを使ってクリスマスまでに彼女を作ろうとしていた彼は幸せな夜を過ごせるのでしょうか
某社のアドベントカレンダーは

「Develop fun!」を体現する Works Human Intelligence Advent Calendar 2020
「Develop fun!」を体現する Works Human Intelligence #2 Advent Calendar 2020

だが気にせず1 今月は頑張って色々書いた。そして私は こんな記事や, こんな記事, こんな記事 を多くの人に読んでいただけて、また感想が聞けてというサイクルがあってとても楽しかった。アドベントカレンダーではありますまいか Advent Calendar 2020 は合計304LGTMを頂いている。そういえばこの私のカレンダー名の大元ネタであったこの記事は結局どれくらいの人に読んでもらったんだろう
image.png
いや決して少ない数とは言わない(読んでくれている皆様ありがとう)。しかし以下を見てほしい
image.png
LGTM数はたったの1だ。なんだ皆そんなに社名特定が怖いのか、、踏み絵は踏みたくないということなのか、、? Yesと答えた方、、、ブラウザバックで直ちに戻ってくれたまえ。2

今日はこれができると言えれば普通に転職先も幅が広がるだろう イマドキな話。普段お仕事で扱うのはゴリゴリの業務アプリ(しかも主戦場がバックエンド)な私だが、たまには私もお洒落でハートフルなコンシューマー向けアプリを作ってみたいなと思うことがあるんだ。Yes、それにはAndroidアプリ!3 バッチジョブ だけ担当していては生涯作れないかもしれない、手のひらで楽しく使えるかわいいやつを作る基礎をもう一度おさらいしたいと思った。

作るのはモストブレイクスルーアプリです。

準備ですぞ

Android Studio
Android Stuidioを使ってAndroidプロジェクトを作成する
スペックは以下あったほうが良いようだ。

RAM 3GB 以上,推奨は 8GB 以上,エミュレータを使う場合は +1GB
ディスクの空き容量 2GB 以上,推奨は 4GB 以上
画面解像度 1280 × 800 以上

MostBreakthroughApplication

名前をつけました。ここで選択するActivityはごくシンプルなものが最初は適切です。
下の画像はBottom Navigation Activityとか選んじゃってるから注意な。
image.png

参考:最初なので使いやすい「Empty Activity」を選択します。(Basic …と思いがちですが、実はシンプルではなく最初は使いにくいので間違えないように)
HAXM という言葉が画面に出てきてイチイチこれはなんだろうとなるが問題解決こそが仕事だからググリながら作業を進めれば良い。エミュレーターなどが立ち上がる。

HelloWorldですぞ

ひとまず以下のようになります。
image.png

HelloWorld! アプリ作成 に基づきエミュレータの設定 をしたうえで、実行する。このVirtual Deviceなるやつも数GBにてディスクを圧迫するから気をつけてほしい。
エミュレータにHelloWorld表示成功でありますまいか。
image.png

ボタンを置きますまいか

何もコーディングしていないが、気にせず動作をさせていきます。onClickで表示が変わる。

MainActivity.java
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // ボタンを設定
        Button breakthrough = findViewById(R.id.button);
        editTexttop = findViewById(R.id.editTextTextMultiLineTop);
        editTextbottom = findViewById(R.id.editTextTextMultiLineBottom);
        breakthrough.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // ...
                if(buttonTap){
                    editTextbottom.setText("あります");
                    buttonTap= false;
                }
                else{
                    editTextbottom.setText("まいか");
                    buttonTap= true;
                }
            }
        });
    }

Android StudioでConstraintLayoutが自動補完されずにエラーが出る にまさに遭遇したが以下で解決する。
Androidの新しいLayout、ConstraintLayoutことはじめ
ConstraintLayoutとは

ConstraintLayoutは自動的にレイアウトの位置をマテリアルデザインに沿った最適な位置に調整してくれます。

トラブルシュートしつつここで以下にコミットしますぞ。
https://github.com/e99h2121/MostBreakthroughApp/blob/main/app/src/main/java/com/example/mostbreakthroughapp/MainActivity.java

arimasumaika.gif
無事モストブレイクスルーしていることを確認しよう。
image.png
xml側のプロパティを変えることで文字色などを変えることができる。

動作確認ですぞ

ここまでくれば、いつものありますまいか的な置換をすれば動作するではありますまいか。

期待動作

image.png

テスト

image.png

既にクリティカルな仕事に詳しい君たちに圧倒的にかんたんだが、アプリを公開したくなった時にはこのページを見てほしい:アプリを公開する
リリースしたことがなければPlay Storeへの開発者登録が必要だが 25ドルは問題解決にかけるコストとしては容易い。Google Play Console

image.png

本当の仕事とは何か大きな問題に直面したときから始まる

Ho Ho Ho... ありますまいかはいつの間にか社内SlackのBotすらエナジャイズしていたではありますまいか。
image.png

得られたもの

ここまでの元ネタ を共有できていないと何も面白くないかもしれないなと思いつつ、Androidアプリ作成そのものはいつでも手の届く、いつもの楽しい開発作業だとクリティカルな君たちにはお勧めできること間違いなしだと実感できるに至った。

JavaだけではなくKotlinも主になってくるからブレイクスルーなクリエイティビティを磨くには絶好の題材だ。もちろんHelloworld的な工程はこの記事の通りにやればできるからやったことのない人はぜひやってみて!近いうち盆栽を愛でるように自分のために、真面目にチビッコ達に遊んでもらえるようなモノくらいは作りたいなと思いましたぞ。

image.png

素敵なクリスマスをお過ごしください。明日はアドベントカレンダー総括します。


  1. 新卒1年目が荒れ果てた開発環境に1年間でCIを導入し単体テストを布教した話 も当然あるんだけど彼の記事に泥を塗るからここでは触れられない。 

  2. アジャイルを使ってクリスマスまでに彼女を作る方法を考えてみる参照。 

  3. 時をかけるタコライスさんから比べて濃縮還元は否めない。記事を書き始めた私のタイミングのミスなので許してほしい。 

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0