gikoha’s blog

個人的メモがわり

DOAC Calculator iPhone

swift-xcodeならどのくらいで書けるかとおもって移植してみた

    @IBAction func buttonTapped(_ sender : Any) {

        bodyHeightField.endEditing(true)

        bodyWeightField.endEditing(true)

        sCrField.endEditing(true)

        ageField.endEditing(true)

 

        let height: Double = Double(bodyHeightField.text!)!

        let weight: Double = Double(bodyWeightField.text!)!

        let age: Double = Double(ageField.text!)!

        let crea: Double = Double(sCrField.text!)!

        var egfr: Double = 194*pow(age,-0.287)*pow(crea,-1.094)             // new formula from Am J Kidney Disease in press

        let bsa: Double = 0.007184*pow(weight,0.425)*pow(height,0.725)      // The DuBois formula

        if genderSwitch.selectedSegmentIndex != 0

        {   egfr *= 0.739

        }

        let gfr: Double = egfr*bsa

        CcrField.text = String(format: "%4.1f",gfr)

        BSAField.text = String(format: "%4.1f",bsa)

        eGFRField.text = String(format: "%4.1f",egfr)

        

        

        // 腎障害ステージ

        var stage: String = ""

        switch egfr {

        case 90...150: stage = "正常"

        case 60...90: stage = "軽度腎障害"

        case 30...60: stage = "中等度腎障害"

        case 15...30: stage = "高度腎障害"

        default: stage = "末期腎不全"

        }

        renalStageField.text = stage

        

        // プラザキサ

        if gfr>=50 && age<70

        { ...

 

f:id:gikoha:20180821111835j:plain

苦労したこと

swift: Interface Builderはやっぱり簡単。でもいちいち @IBOutlet weak var bodyHeightField: UITextField! とかして接続してやんないといけないのはめんどい。

if がいちいち{}が必要でコードが汚い

whenがなく switchも多段ifの代わりに使えない

++がない

デベロッパー年間料金が高い(もう退会しちゃった)

 

kotlin: インターフェースデザインがすごく大変。今回はTable Layoutつかったけれど初だったのでよくわからない。思ったようにサイズ調整ができない。

ただLandscapeインターフェースが作りやすい iPhoneはめんどくさい

インターフェースと変数をいちいちひっぱる必要がない

when { -> } がスマートでコードが美しい

デベロッパー登録は1回だけで安い

kotlin

iPhoneでswiftが簡単なように Androidでは kotlinがメジャーになっているらしい

そんなわけで久しぶりにandroid studioをインストール

Ccr計算機も

package com.hatenablog.gikoha.doaccalculator

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
import kotlin.math.pow

class MainActivity : AppCompatActivity() {

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


calculateButton.setOnClickListener {
var height: Double = bodyHeightField.text.toString().toDouble()
var weight: Double = bodyWeightField.text.toString().toDouble()
var age: Double = ageField.text.toString().toDouble()
var crea: Double = sCrField.text.toString().toDouble()
var egfr: Double = 194*age.pow(-0.287)*crea.pow(-1.094) // new formula from Am J Kidney Disease in press
var bsa: Double = 0.007184*weight.pow(0.425)*height.pow(0.725) // The DuBois formula
if(femaleButton.isChecked) egfr *= 0.739
var gfr: Double = egfr*bsa
CcrField.text = "%4.1f".format(gfr)
}
}

}

こんな形ですごく簡単にかけました

f:id:gikoha:20180820164804j:plain

Java使う気なくすじゃねーかw

ShiftResolver

めんどくさい拘束表を作る羽目になったので、なんとか自動化アプリを作ってみた

 

本来なら重み付けをOptaplannerあたりでやらないといけないところだが、安直にやるにはどうするか考え、・休み第一 ・均等化第一 ・連続することがあるかも で作ってみたところまずまずだったので、一度CSVで書き出してやるには使えるかな

 

f:id:gikoha:20180423225349j:plain

xcode, swift ソースコードつき 人数変えたい場合には再コンパイル必要だし..w

 

https://www.axfc.net/u/3905461.zip

P10 Plusバッテリー膨張

ちょっとみたらバッテリー膨張していました

やっぱり発熱著しいゲームアプリを充電しながらやったのがまずかったのか.. 

ホッカイロことXperia Z4でもこんなことなかったのにHuaweiでは1年持たなかったとは、逆にソニータイマーおそるべし

もちろん1年以内だったので無料交換素早くしていただきましたありがとうございました。

f:id:gikoha:20180416163740j:plain

f:id:gikoha:20180422163147j:plain

スマートEXメモ

内科学会総会が京都なんぞであったため、やむなく出るはめに

紙切符で名古屋まで出た後に京都まで行ったところ、トラブルがあったためメモ

 

行き:紙切符をもってsuicaをタッチしたところ、エラー。名古屋駅を出ていないためらしい。係の人に紙切符を渡し、入場券をもらった。入場券を通した後suicaをタッチして通過可能。EXご利用券なんてものが出ました。

f:id:gikoha:20180415194843j:plain

帰り:普通に京都駅から入場、名古屋の新幹線乗り継ぎ改札をタッチして通過。しかしiPhonesuicaは乗車中とのことであった。名古屋を出場していないとのことで、出場処理をしてもらう必要があった

乗り換えのときは磁気券投入してからタッチするべきだった?