コンユウメモ @kon_yu

作ったガラクタとか、旅行とかの話

#2019年やりたいことリスト を作ってみた

キューティクルロン毛マンワタナベさんを真似して酒飲みながら来年やりたいリストを作った blog.nabettu.com

仕事

  • AWSもうチョットデキルようになる
  • サーバレス
    • サンプルのアプリを作る
    • サーバレスで仕事をする
    • サーバレスの構築だけする仕事をする
    • サーバレス関係の登壇をする
    • サーバレスの技術顧問をする
  • エンジニアコミュニケーションの講座を開く
  • リモートワーク
    • リモートワーク絡みでブログを書く、技術書展への頭出しのため
    • 技術書展でリモートワークでの仕事の仕方の本を書く
    • リモートワーク関係でもうちょっとブランディングする
  • 1ドルでいいから日本円以外の仕事をする
    • 海外のクラウドソーシングのしごとの調査
    • スキルセットと鑑みて必要なら伸ばすスキルを伸ばす
  • 仕事でモダンなiOSを書く
  • デザイン、フロントエンド、バックエンドが疎でありコミュニケーションしやすいアーキテクチャを提示する
  • ストック型のビジネスにも挑戦する
    • 気負うとやる気が無くなるので失敗する前提で気楽にやる
    • ナレッジを貯めるのが目標
    • クローズドベータで学びのサービスを検証したい
  • 自分のHPをリニューアルする

学習

  • 今年も英語学習に力を入れる
    • セブに短期留学する(数年ぶり二回目)夏前まで
  • Rubyの資格を取る(夏)
  • 情報処理安全確保支援士の資格を取る(秋)
  • AWSの資格を取る(冬頃)
  • iPadだけで開発できるよう工夫する
  • DDDとクリーンアーキテクチャの本を読む
  • コンピュータの古典の積読を潰していく
  • オンライン勉強会を開く
  • Meetupに参加して英語でなんか発表する
  • Touch Designerを勉強してインスタレーションを作る
  • STEAM教育のAのArtについて学びを深める

生活

  • 北海道にセカンドハウス計画を進める
  • ワーケーションを増やす
    • シンガポール、マレーシアを旅行してプラナカン文化を追う旅行に行く
    • マレーシアのモスクも見に行きたい。
    • ポルトガルのサグレス岬に行きたい。深夜特急を読み直して、物語で行ったのはそこで、ロカ岬と勘違いしてたから
    • アメリカの東海岸から西海岸へ旅行する。そんで「アメリカはでっかい田舎なのさ」と言う
  • 久々に格闘技を習いに行く
  • 確定申告を速攻終わらせる
  • そろそろ税理士との契約を考える
  • 投資信託に毎月機械的にぶっこむ
  • SNSの依存度を下げる
  • Maker Faire Tokyoなどに子供やITリテラシーの低い人でも楽しめるものを作って出す
  • 毎月確定申告の準備をする
  • プラスチックオーシャン対策や食糧問題にも何か小さいアクションを起こしたい

やりたくない作業はガチャで解決 iOSアプリChoreGachaの作り方

毎度おなじみクソアプリ Advent Calendar 2018の25日目、2年連続オオトリの記事でございます

「あなたにとって一番ためになったビジネス書はなんですか?」なんてことを面接とか飲んでるときとかに話したりするよね。

そんなときはオレはいつもカーネギーの「人を動かす」と答えている。 この本は本当にいい本で、オレは本編の他にも漫画版も持っている。

人に何かをしてもらいたいときには言い方や接し方が重要だよと当たり前のことを説いてる本で、「プログラムは人と違って嘘つかないから良い」とか言っていたかつてのオレのような人にはおすすめなんだな。 人を動かす 文庫版マンガで読み解く 人を動かす

そんなことはさておき、オレと同じ家に妻がいるんですけどね。 やれ「部屋を片付けろ」だの、「読んでもいない本を処分しろ」だの、「なんだかわからないケーブルを捨てろ」だの「謎のガジェット捨てろだの」頭ごなしに言うわけですよ。

本当にわかってない、ピープルマネージメントがわかってない。こんな言い方ではコミュニケーションの試験は赤点だ。

そんなにガミガミ言って人が動くわけがない、もっとこう片付ける気にさせるようにマネージメントしなさいよと、カーネギーの人を動かすを渡そうとするとどういうわけか火に油

しょうがないから片付けを仕組み化できるようなアプリを作らせろと言ったところ、そんなの作る時間があったら片付けろ言われる始末。至極まっとうな主張なのでぐうの音も出ない。

そんなこんなで妻が数日出張で家を開けたんですよ。

「これは片付けていいところを見せるチャンスだ」 「この隙きに片付けアプリを作って部屋を片付けまくって見返してやるぜ!!」

と言って作ったのが今回のこちら

作ったアプリ概要

「面倒くさいことややりたくないことはスキマ時間にちょっとづつやればいい」 ちょっとづつ何回もやればいずれ全部解決するという寸法だ。

やらなければならないけどやりたくないことを集めて、これらをガチャを回して一つに決める。決まったものを10分間実施し、時間が来たら音が鳴るというiOSアプリ

アプリ名

アプリ名はChoreGacha(チョアガチャ)、雑用(chore)をガチャを引いてこなしているのでチョアガチャ

登録されているChoreは以下の7個

  • テーブルや机を片付ける
  • 水回りを掃除する
  • 本棚を整理する
  • いらないものをメルカリに出品する
  • 伝票の仕分けをする
  • 筋トレかストレッチをする
  • 英語をちょっと勉強する

Choreの追加や編集は? できねぇよ。コード書き換えりゃあいいじゃねぇか

デモ


面倒くさいことをガチャで解決


しょうもないアプリの作り方

さて技術的にはそんなに高度なことはしていないが、作りたいもの機能をどうやって最小限に絞り込むのかについて、今回はいつもとは趣向を変えて例を示したい。

趣味で作って公開したものはバズらせたい気持ちもわかる。オレも正直せっかく作ったものが多くの人に知られてほしいとも思う。

わかるけれども少しばかりバズったところで人はすぐに忘れていくのだ、コンシューマの消費行動に我々クリエイターが疲弊する必要はないのだ。ないのだ!!

下記のことをして漠然としたやりたいことから、やるべきことを絞り込んで実装するという流れで作っていく

  • やりたいこと
  • MVPを考える
  • 具体的なタスクリストにする
  • タスクを潰していく(作っていくと判明したタスクの追加もする)

やりたいこと

  • 本棚の片付けや机の整理をちょっとづつやる
  • ガチャのように選びたい
  • タスクはタスクごとに制限時間をつける?
  • やる時間を設定(セレクトする5、10分 20分 30分)
  • ガチャを回す
  • ストップウォッチスタート
  • タスクの登録(内容と、選べる時間帯を複数)
  • デザインも適当なキットみたいのを当てたい
  • RxSwiftを使ってみたいから使う

MVPを考える

MVP(Minimum Viable Product)はプロダクトのコアだけ作る、機能の取捨選択した一番小さいプロダクトのことを指す。特に重要なのはやらないことを明確にして書き出しておくことだ。

やらないこと

  • タスクの登録はやらない
    • 固定値にする。モデルのリストをイニシャライズする
    • なので永続化もしない
  • アプリがバックグラウンドでどれだけ再生できるかは気にしない(最悪10分持てば良い)
  • 時間設定もなくていい画面が増えるから 10分とか固定
  • UIにこらない、デフォルトでいい、アニメーションもこらない
  • AutoLayoutを気にしない。iPhone Xで見られればいい
  • 1画面1ストーリーボードみたいにいい感じにしない
  • FatViewControllerを気にしてファイルをいい感じに分割しない

やること

  • ガチャを引く
  • タスク決定
  • タイマースタート
  • タイマーをっぽいことをバックグラウンドで動かす
    • -> どうやらストップウォッチ的なのはiOSアプリは作れないっぽい
      • ローカルプッシュ通知を使う
  • RxSwiftで書く。全然本質的じゃない書き方でいいのでRxを導入する

MVPから導き出されるUIは

  • トップ画面、ガチャを引く
  • タスク決定、タイマースタート開始ボタン
    • ストップウォッチをバックグラウンドで動かす
    • 10分後に通知が飛ぶ

MVPを作るためのタスク

  • [x] XcodeでUnitテスト付きで作りアイフォンでデバッグできるようにする
  • [x] CarthagoでRxswiftを入れて適当なプロプログラムを動かす
  • [x] 2枚めの適当な画面を作る
  • [x] ボタンを押したら画面遷移するようにする(ストーリーボードじゃなくてコードで)
  • [x] 画面遷移で値(最終的にはモデルクラス)を渡す
    • [x] 中間段階として文字列を渡す
    • [x] モデルを渡す
  • [x] タイマーを作る、時間が過ぎたら適当な音がなるようにする。バイブでもいい
    • [x] 適当なストップウォッチ機能を作る
    • [x] タイマーのバックグラウンド再生する
    • [x] ストップウォッチ機能をカウントダウンするようにする
    • [x] カウントが終わったら、音を鳴らすようにする
  • [x] モデルを作る、structで作ること
    • 内容: タイトル、対象時間を入れたいところだけど今回はタイトルだけ
  • [x] ガチャのロジックを作る
    • [x] ガチャを引く、選定、画面遷移
    • [x] 選ばれたモデルをラベル表示
  • [x] タイマー画面の調整
    • [x] 戻るボタンを付ける。タイマーもリセット(ちゃんと作ってないからリセットされるかも)
  • [x] 見た目を整える
    • [x] タイトル表示
    • [x] ボタン名をつける
    • [x] タイマー開始前のラベル名がlabelのままなので00とかにしておく
    • [x] サンプルのRxのコードを消す
  • [x] 他にやるとしたら
    • [x] バックグラウンドでタイマー完了後に音を鳴らせないのでローカル通知にする

じゃーねーロケットビーバイ!!

人を動かす 文庫版

人を動かす 文庫版

マンガで読み解く 人を動かす

マンガで読み解く 人を動かす

「キッチハイク! 突撃! 世界の晩ごはん」書評

KitchHikeというウェブサービスがあり

kitchhike.com

そこのCTOの藤崎さん*1と飲む機会があった。 飲んだあとにKitchHikeのオフィスに遊びに行った際に、社長の山本さんもいらっしゃってこのサービス名と同じ名前の本を山本さんが出したというので一冊いただきました。

「読んだら書評を書きますね!」と言ったはいいものの1年半ぐらい経ってこれを書いている。まだアマゾンで売っていてよかった。

キッチハイク!  突撃! 世界の晩ごはん

キッチハイク! 突撃! 世界の晩ごはん

さて重い腰を上げて書評を書いているかというと。

先日からバックパッカーのバイブルとも言える沢木耕太郎深夜特急を本棚の奥の方から引っ張り出して読み直していたところ、旅先で出てくる料理がとても美味しそうに魅力的に感じられた。

この旅の料理に特化した本があったよなぁというので「キッチハイク! 突撃! 世界の晩ごはん」を思い出したというわけだ。

「ちょっと世界一周してくるわ」と行く先々の国の家庭にお邪魔しては飯を食い歩いていた内容がこの一冊に収まっている。書き始めからこんな調子である。

いざ、モグモグ・ザ・ワールドだ!旅先の道端ででたった人に声をかけるのはもちろん、友だちの紹介(の更に紹介)、FacebookAirbnbを介して、「あなたのおうちでご飯を食べさせてくれませんか」とアプローチしまくることにした。

完全にヤベー奴である。

1つの国ごとに章だっていて、雑誌のコラムとして連載していたものなので文も長すぎず読みやすい。書きっぷりはなんとなく石田衣良池袋ウエストゲートパークシリーズの各章の終わりの方で事件の顛末やらが書かれているあたりを彷彿とさせる。

小難しく考えることなく読ませてくれる文章で暑い国のビールを飲みながら読むのが合いそうだ。

この本を一言で表現と「深夜特急 + 孤独のグルメ」と言ったところで、言い得て妙ではないかと思う。

この本を読んで、日本に馴染みのないなんか変わったものが食べたくなったら、キッチハイクのサービスで食べに行けばよいだろう(最高にうまいサービスへの誘導)

例えばこんなのとか、面白そうだよね。 ▼予約受付中▼ 12/09 シンガポールの定番朝食「カヤトースト」を食べよう! in 東京 - キッチハイク


さて、ソフトウェアエンジニア的な目線で、キッチハイクを語るとテックブログとてもよく書かれている。

tech.kitchhike.com

みんなが飛びつきがちな最新のテクノロジーをガンガン使ってますというのではなくて、モダン過ぎずレガシー過ぎないいい感じに、システム開発を技術的負債が出にくいようスキルレベルが高くないメンバーでも開発できるようなサステイナブルな開発をしていることが読み取れる。

キッチハイク!  突撃! 世界の晩ごはん

キッチハイク! 突撃! 世界の晩ごはん

深夜特急(1?6) 合本版

深夜特急(1?6) 合本版

劇的紀行 深夜特急 [DVD]

劇的紀行 深夜特急 [DVD]

*1:藤崎さんはオレが選ぶ三本の指に入るイケメンCTOなのである。