#SPAJAM 2017 東京C予選で優秀賞を頂いた。
#SPAJAM 2017 東京C予選にチームで出場しまして、結果的に優秀賞をいただきました!
#SPAJAM 2017 東京C予選で優秀賞いただきました!!
— Kirie Miyajima (@mjk_0513) 2017年6月11日
ありがとうございました!!! pic.twitter.com/UubNV3XyB6
メンバーのみなさんお疲れ様でしたm(__)m
今回もほぼほぼ徹夜での作業、大変だったけどかなりいいハッカソンだったなと思います。
東京C予選のテーマは「子ども」で、僕らが作ったのは「家庭内仮想通貨システム」である「Pocket money」というアプリです。
ちょまどさんがいい感じに呟いてくれてたので引用。
スマホアプリ開発ハッカソン #SPAJAM の #東京C予選 成果発表会!
— ちょまど@7/14-8/1米国で夏休み中 (@chomado) 2017年6月11日
家庭内通過アプリ「Pocket Money」
例えば:
子ども「ゲーム欲しい」
親「これは100Pt必要ね。ちなみにレートは肩叩き1Pt、風呂掃除1Pt」
みたいなイメージ。べんりだ! pic.twitter.com/xoLpYt7kHC
追加スクショ #SPAJAM #東京C予選 pic.twitter.com/It9k929pwP
— ちょまど@7/14-8/1米国で夏休み中 (@chomado) 2017年6月11日
優秀賞でした!おめでとう!#SPAJAM pic.twitter.com/ffi7EuyVU9
— ちょまど@7/14-8/1米国で夏休み中 (@chomado) 2017年6月11日
実際につかったスライドはここから見れます。
今回チームでこだわったところは、APIの設計でした。
はじめの2時間くらいはずっとAPI周りの設計をやってて、本番開発さながらの仕様書をまとめました。
まず機能ごとにどんなデータをサーバに格納して、どんな処理をさせてそれをiOS側に渡すのかといった話し合いをして、そこからさらにスマートに機能を集約していった結果、20個のAPI
ができました。
とはいえ、スプレッドシートに仕様をまとめるだけでは動かないわけで、そこからさらにMySQL+PHPでごりごりハードコーディングをする作業になります。自分がバックエンド担当してたんですが、初日はほとんどXcode開いてないです。
ただ、仕様がしっかりと決まっているのでバックエンド側を作っていくと同時にフロント側のモデルもどんどん作られていくという、非常に気持ちのよいフロントーバックの連携だったなと思います。
チームメンバー4人のうち、1人がiOSでのAPIリクエスト周りを担当、1人がバックエンドを担当、2人がフロントのデザイン周りを担当するといったフォーメーションでした。デザインは個々の感性を頼りにして気合でどうにかする、みたいな開発方法でした。
でもいままで出たハッカソンの中でも1番楽しかったし、なにより雰囲気がかなりよかったなと思っています。会場であるYahooLodgeが新しくて、物理的にも明るいというのもあるかもしれませんが、チーム毎の雰囲気だったり会場全体の雰囲気がすごくほんわかしていました。
いいハッカソンだったと思います!
女性の割合がめちゃ多かったのも要因の1つだと思います。
その1チームは弊チームなのは自明🤑🤑 https://t.co/UOepSYoPVc
— Kirie Miyajima (@mjk_0513) 2017年6月11日
男子オンリーのチームは僕らだけだったらしい、ジェンダーバランス!
ちなみに、この案を出したのは弊チームのメンバーでした。
弊チームたっぷんのアイデアがエグくてウケている https://t.co/Qy2kVBYiga
— Kirie Miyajima (@mjk_0513) 2017年6月10日
あと、個人的に他のチームでおもしろいなと思ったのは、WWDC2017で発表されたばかりのARKitをフル活用していたチームです。
プレゼンでも、公式ドキュメントしか情報がない中での開発だと仰っていましたが、日本時間火曜の深夜2時に出たフレームワークを土曜日には使いはじめるってめちゃくちゃかっこいいです。
月曜日に発表されたばかりのARKitを土日のハッカソンで実装してくる人かっこいい #SPAJAM
— Kirie Miyajima (@mjk_0513) 2017年6月11日
iOS11 betaの新しいコントロールセンターが見えたときに会場がざわついたのは、さすがスマホアプリのハッカソンだなぁという感じでめちゃよかったです👍👍
優秀賞チームは全国の予選でかなり選ばれているので、これから本戦にいけるかどうかはわかりませんが、ぜひ温泉に行きたいのでいけるよう願っています。
ScratchDay 2017 in Kashiwa を開催しました。
5月14日(日)に柏市立柏中学校でScratchDay 2017 in Kashiwaを開催しました!
scratchday-kashiwa.org
20代最初の仕事が #SD2017Kashiwa でよかった!実行委員会の皆さん今日はがんばりましょう💪
— Kirie Miyajima (@mjk_0513) 2017年5月13日
柏中の体育館でお待ちしておりますzhttps://t.co/vZpfn2YgWF
ご参加くださった皆様、大変ありがとうございました。
来場者数は170名以上で、昨年を大きく上回りました。
mjk0513.hateblo.jp
↑去年の記事です。
現在アーカイブ用映像などは鋭意製作中ですので、もうしばらくお待ち下さい。
柏市教育委員会学校教育課副参事の佐和さんとのトークセッションは、ノープランだったのにも関わらずかなりいい感じなできになったと思います。
我々のような一民間団体と行政が本気になって取り組むプロジェクトがどこまで本気かというのをお見せするいい機会になったのではないでしょうか。
いろいろと次に繋がる展開が見えてくる、そんなセッションでした。
今回は柏市教育委員会が共催として入ってくれただけではなく、様々な方々にご協力いただいています。
例えば、Microsoft様にはSurfaceを貸し出していただきました。
SurfacePro3*5 + SurfacePro4*5 = 10 surfaces.
— Kirie Miyajima (@mjk_0513) 2017年5月12日
ありがとうMicrosoft!#SD2017Kashiwa で使わせていただきます! pic.twitter.com/Qd4rVda6DO
最後に、この話はイベント中になんどもしていたのですが、プログラミング教育を一過性のブームとして終わらせないことが大切だということを、改めて書いておきます。
少し前まではまったく考えられなかった規模で、プログラミング教育が広がっています。
完全にブームです。
しかし、我々中にいるメンバーは、このブームが終わったあとのことをそろそろ真剣に考えたほうがいいと最近感じています。
大切なのは、ブームだともてはやされている時期にどれだけメジャーにするかです。言い換えるならば、どれだけ体力を付けるかだと思います。
これはビジネス面もそうですが、学問の面からも同じことが言えるはずです。きっちりと体系化していく作業をしなければならない。
そういったことを考えてみたいなぁとここ最近やんわりと思っています。
まずは圧倒的サーベイからですね、がんばります。
2017/05/22 追記
振り返りPVを公開しました。
youtu.be
【Swift3】 presentで画面遷移したときに遷移先のViewにNavigationBarを表示させておく
let nextViewController:NextViewController() = NextViewController() let navigationController = UINavigationController(rootViewController: nextViewController) self.present(navigationController, animated: true, completion: nil)
rootViewControllerに指定して、navigationControllerをpresentしてあげるだけ。
【Swift3】UITableView separator のおはなし
UITableViewのcellとcellの間にある線がある。これをseparatorという。(そのまま)
こいつに関して幾つか知見を得たのでメモ。
画面の左端まで線を到達させる
separatorはデフォルトでは画面の左端まで到達せずに切れてる。
これを左端までつける方法。
tableView.separatorInset = .zero
これでOK。
色も変えることができる。
tableView.separatorColor = UIColor()
ここまでカスタマイズできるのはすごい。
ただ、これだとindexPath == 0、つまり1番上のcellの上に線が入らない。
こういったことを実装したい場合は、cellにUIViewを追加するしかないっぽい。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = UITableViewCell(style: .default, reuseIdentifier: "MyCell") cell.textLabel?.text = items[indexPath.row] if indexPath.row == 0{ let separatorView:UIView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 1)) separatorView.backgroundColor = UIColor.red cell.addSubview(separatorView) } return cell }
これextensionつくってgithubで公開してる。
github.com
ただ、didSelectRowされたときに、deselectRowを指定してると描画が変な感じになっちゃう。
どうすればいいか考えてみます。
【Swift3】 UITableViewのHeaderをカスタマイズする方法
今開発中のアプリでUITableViewのHeaderをイジる必要があって、いろいろ調べたのでメモ。
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { //code }
ではなくて、viewForHeaderInSectionを使ってUIViewをリターンしてあげる。
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { let headerView:UIView = UIView() headerView.backgroundColor = UIColor.white return headerView }
あとはこのViewにいろいろと追加していけば好みのものがつくれる。
headerの高さは、tableViewのメソッドで指定する。
tableView.sectionHeaderHeight = CGFloat()
仕事でコード書くと知らないことを知れるのでおもしろい。
いろいろと勉強になる。
四畳半神話大系がnetflixにある
netflixで四畳半神話大系が配信されてる。
www.netflix.com
昔一話だけみてそれ以来見てなかったけど、改めて見るととてもおもしろい。
はやく夜は短し歩けよ乙女の映画みたい。
京都に住みたい。
以上です。
SiriとRaspberryPiで電気をつけたり消したりする
RaspberryPi3を買ったのでなんかしたいなと思い、友人が前にやっていたRaspberry Piからの家電制御をやってみた。
こちらが完成品。
vimeo.com
Siri(HomeKit)を使って机の電気が着いたり消えたりしています。
方法
qiita.com
参考というかほとんどはここに書いてある通りです。
LEDの変わりに以下の部品とビニルコード、電源プラグ(オスーメス両方1つずつ)をはんだ付けして、ON/OFFを制御するようにしています。
akizukidenshi.com
www.monotaro.com
AppleTVが家にあるので、「家から離れた時」や、「日没後」などといったスケジュールにより制御することも可能です。
ベッドに入ってしまい起き上がるのがめんどくさいときにとても便利です。
素晴らしい。テクノロジー万歳!