Swiftで家計簿アプリ作る【2】
今回も書いていきます。
前回のコードでブログになかった部分
var accountCount = 0 var moneyInAccounts: [Int]=[0] //money each of Accounts var nameOfAccounts: [String]=["財布の残金"] //Accounts' name
これ実はviewCountrollerに書いてるんですよね、
これだと他のviewに移動した時に変数が使えないので、AppDelegate.swiftに書きます。
ただのコピペなので詳細は割愛
次に入出金の入力をする部分を作ります
デザインはこんな感じ 収入ボタンで加算、支出ボタンで減算にするだけ
@IBAction func getMoney(_ sender: Any) { if(inputMoneyTextfield.text != ""){ appDelegate.moneyInAccounts[appDelegate.accountCount]+=Int(inputMoneyTextfield.text!)! } self.view.endEditing(true) } @IBAction func leaveMoney(_ sender: Any) { print(inputMoneyTextfield.text) if(inputMoneyTextfield.text != ""){ appDelegate.moneyInAccounts[appDelegate.accountCount]-=Int(inputMoneyTextfield.text!)! } self.view.endEditing(true) }
コレクションにするやり方もありそうですがわからないのでとりあえずこのまま
getMoneyボタン(収入ボタン)を押すとテキストフィールド内の数値を今の口座の残金に加算するだけ
leaveMoneyだと減算
この時、テキストが空白だとエラーが起きるので、ifで分けている
次に、テキストフィールドで数字だけを入力できるようにする。
qiita.com
この記事を参考にさせていただきました。
override func viewDidLoad() { super.viewDidLoad() inputMoneyTextfield.keyboardType = UIKeyboardType.asciiCapableNumberPad }
これをviewDidLoadに追加すれば、数字だけのキーボードを出せる
これで「入力した金額で残金を増減できる」と、超基本的なことはできた
今回はこれで。
Swiftで家計簿アプリ作る【1】
早速書いていきたいと思います。
xcodeでswiftで書きます。object-cはかけません。
とりあえず口座名(財布、銀行等々?)と残金の表示をするUIの設計
まあ最初は適当に
@IBOutlet weak var labelAccountName: UILabel!
@IBOutlet weak var labelMoneyInAccount: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
labelAccountName.text="Accounts: "+nameOfAccounts[accountCount]
labelMoneyInAccount.text="Money: "+moneyInAccounts[accountCount].description
}
当方のスマホ、iPhoneSEなのでめっちゃ小さい
まあ好んで使ってるので無問題ですけどね。
これだとアプリ閉じるたびに残金がゼロ円になってしまうが、これを修正するのはまだ先の話
もうちょっと機能を増やしてからやりたい。
短いですがこれで。
Swiftで家計簿アプリ作る【0】
Xcodeで家計簿アプリを作ります。
AppStoreの家計簿アプリがどれがいいのかわからなかったので、自作することにしました。
友人にこの話をしたところ、記帳が続かず、三日坊主になりがちなんだとか。
ですので、継続しやすい仕組みを作りたい所為。
あ、でも当方初心者なので、かなり基礎のところからやっていきます。
次の記事からまた〜
ブログが続かない
ブログが続かない。
これ六つ目。
GlideとGASで遊んでみた
ほぼ自分用のメモ
初記事なのにね。
まずGlideとは、Googleスプレッドシートの内容を読み込んで、簡単にPWAが作れる、というサービス。
詳細はググった方が早い
全然詳しくはないんだけども、PWAは「クラウドベースだけどアプリっぽい見た目、挙動のアプリ」みたいに認識してる。めっちゃ適当
いろんな人(日本人)の記事とかをみてると
・静的コンテンツ(自己紹介・オススメのお店紹介・企業紹介など)
・掲示板ツール(コーディングいらず、ログインの必要あり)
に大別されるように感じた。
ほとんど「コーディングしなくてもオンラインのアプリが作れるよ!やったねたえry
まず思ったのが「SNSもどきが作れるけどただの掲示板じゃ面白くないから、インスタみたいに画像投稿に特化したのを作ろう」
まずGoogle Formで画像のアップロードをユーザにさせる
Google Formの結果がスプレッドシートに返せることは知っていたので、試したのだが、Formからアップロードされた画像のデフォルトの権限が「非公開」なので、
この手法を使うならスクリプトを書く必要があると気づく
...コーディングしなくてもアプリが作れることが売りなのに、コーディングはしたくねぇなあ...
(これが後々覆るのだが)
とりあえずインスタを作ることは断念、別の遊び方を考える
そこで別のプロジェクトで電車の運行のAPI(駅すぱーとさん)を殴る訓練をしていたので、
「掲示板に位置を書き込むと、その位置の電車の運行状況がBotで返ってくる」
...これだ
でもその前段階として、とりあえず天気予報でやってみようかなと
天気予報APIはlivedoorさんが提供してくれていることを確認
お天気Webサービス仕様 - Weather Hacks - livedoor 天気情報
とりあえずGAS(Google Application Script?)を書き始めた。
と言っても、jsonを取得し.parceしてみるだけ。
取得した「天気」「最低・最高気温」「説明」などを列でスプレッドシートに投げて
Glideでシートを読ませることで、それっぽい感じになる
取得できなかった時の例外処理を忘れずに。
jsで使えるいくつかの関数がGASになかったので
かなり乱暴な実装をしたけども、
自分が使うなら大丈夫なレベルまで完成した。
Bot channnelで都市名などを書き込むと、botがその場所の天気情報を掲示板に流してくれる仕様
ここ参照
こればAPIで投げてGASを書ければ動的なアプリケーションも簡単に作れるよ!ということになる。
当然プログラミング初級者以上向けだけど、逆に初級者以上なら誰でもできるかと。
そのうち運行情報通知Botとか、スマートスピーカみたいなのを作りたい。
それでは初記事でした。