androidからwindowsにubsで画像を送る

Use UBS for

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        getOmikujiButton.setOnClickListener {
            Log.v("MainActivity", "Button Clilcked")

            // Code here executes on main thread after user presses button
        }
    }

getOmikujiButton.setOnClickListener {
            val results = arrayOf("大吉","吉","中吉","小吉","凶")
            val n = Random().nextInt(results.count())

            resultTextView.text = results.get(n)
            // Code here executes on main thread after user presses button
        }

若干抵抗が少なくなってきました。

分岐処理

getOmikujiButton.setOnClickListener {
            val results = arrayOf("大吉","吉","中吉","小吉","凶")
            val n = Random().nextInt(results.count())

            if(n == 0){
                resultTextView.setTextColor(Color.RED)
            } else{
                resultTextView.setTextColor(Color.parseColor("#808080"))
            }

            resultTextView.text = results.get(n)
            // Code here executes on main thread after user presses button
        }

OK、では応用してみましょう。

textView, buttonTextのデフォルトvalueを変更する

app -> res -> values -> strings.xml
strings.xmlにvalueがsetされているので、この値を変更する

<resources>
    <string name="app_name">New</string>
    <string name="message_text">...</string>
    <string name="button_text">ボタン</string>
    <string name="textview">時間を表示します</string>
</resources>

textViewがかわりました。

kotolinを頑張らないと全然駄目ですが、少しandroidの構造がわかってきましたね♪
最低限の項目として以下は必要
1.AndroidのDB連携
2.APIを使ったサービスづくり
3.アプリの経験豊富なデザイナーと一緒にサービスを作る
4.ストア申請までもっていく

kotolin 文字列の連結

fun changeTextView(view: View){
        var calendar = Calendar.getInstance()
        val hour = calendar.get(Calendar.HOUR_OF_DAY)
        val minute = calendar.get(Calendar.MINUTE)

        messageTextView.text = "Hello android!"
        textView.text = "時間 ${hour.toString()}:${minute.toString()}"
    }

androidで時間を表示する

fun changeTextView(view: View){
        var calendar = Calendar.getInstance()
        val minute = calendar.get(Calendar.MINUTE)

        messageTextView.text = "Hello android!"
        textView.text = minute.toString()
    }

勝手が異なるから、スクリーンショットの転送も最初は一仕事だ。

valは変更不可
varは変更可

Android studioのEmulatorが遅すぎるので、実機でテストする

今回使うのは、HT17 android version 6.0(数年前に開発用としてほぼ新品で6000円くらいで買いました)

HT17
(1)Setting -> Dveloper optionsのDebuggingでUSB debuggingをonにする。
(2)Setting -> Personal -> Security -> Device administration -> Unknown sourcesをonにする
(3)windos | mac にUBSでつなぐ。

Android studio
(4)studio のDeploymentでConnected Devicesで、{$device}(HOMTOM HT17)を選択する。
(5)Runで実機に反映される!!!

きた~ ひゃっぽい!!!!!!!!!!gradle finishが1mくらいに改善。 エミュレーター遅すぎて、android開発撤退しようかと思ってたけど、良かった良かった!!!

デバックが解決したので、では少しずつ作っていきましょう♪

kotolinのtextを変えます。

fun changeTextView(view: View){
        messageTextView.text = "Hello android!"
    }

文字の変更が反映されてますね。

では、textViewを追加してみます。

fun changeTextView(view: View){
        messageTextView.text = "Hello android!"
        textView.text = "Hello android!"
    }

apply changeを押すと、buildが9sくらいに短縮されました。感動

build.gradle(module:app)

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "jp.hoge.anew"
        minSdkVersion 15
        targetSdkVersion 26
        resConfigs "ja", "xxhdpi"
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            ext.enableCrashlytics = false
        }
    }
    aaptOptions {
        cruncherEnabled false
    }
}

少し早くなった印象。

layout fileを表示する

studioアップロードしてここまでに1日かかった。。

iOS・Androidの開発の完成・納品の流れまでがいまいちイメージわかないので、Cacooでワイヤーを書いて、up workで依頼して流れをつかむことにした。

ああああ、なるほど!
API, frameworks, dependency injection libraries, databaseなどが項目としてあるのね!

Frame workはAGL、Angular、Appcelerator Titanium、Corona SDK、Framework7、Intel XDK
DBはCouchbase, LevelDB, Realm, SQLiteか。SQLite以外は使ったことない。やばいな、これ。

Android版もpostします。

うわ、android・iOS開発している人たちって、フルスタック+インフラも当然+なんでもできます系ばっかりだな。しかも、大量に。
しかも、皆さんストアーのアプリのリンクがポートフォリオなんだ。
それがスタンダードか、完全にマーケットのモノサシ誤ってた。。カスじゃん、俺。

しかし、5年以上のexperienceの人の作品中心にインストールしたけど、クオリティ高いし凄いっすわ。
完全に自分のレベルの低さ加減がわかりました。終わってる。
つくっていくしかないけど、これ追いつく・近づくのに1年くらいかかるかもしれんな~。。。GW終わりってのに、きっついな~

show line number

shift + shiftでsearch

show line number on or off で行番号の表示非表示を設定

app -> manifests -> androidManifest.xml

<activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

基本的には
layout activity_main.xml -> MainActivity 必要に応じてAndroidManifest.xml

vagrant->azureでwebappを作っていく

azure CLIにてplanをつくって、webappをcreate

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE
az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name boj-zh --runtime "PHP|7.0" --deployment-local-git

local

[vagrant@localhost azure]$ git init
[vagrant@localhost azure]$ git add *
[vagrant@localhost azure]$ git commit -m "initial commit"

[vagrant@localhost azure]$ git remote add azure https://name@boj-zh.scm.azurewebsites.net/boj-zh.git
[vagrant@localhost azure]$ git push azure master
Password for 'https://name@boj-zh.scm.azurewebsites.net':

azureに載りました。わーいわーい
若干気になるのは、ローカル(vagrant)と、azure(上)だと翻訳のされ方が違う。。何故?気になるな。

もうちょっとやりたいところだが、、、さーアプリやろう!!
Let’s Go!


iOSもやりますが、まずはandroidから。
welcome back!