どくぴーの備忘録

真面目なことを書こうとするクソメガネのブログ。いつ投げ捨てられるのかは不明

DataBindingについて + 高専カンファレンス100 in 東京 #kosenconf で発表してきました + 感想

この記事は KobeUniv Advent Calendar 19日目の記事も兼ねています

高専カンファレンス100 in 東京,100カンファに行ってきました.そこで(毒にも薬にもならない)Androidの発表をしてきました.

www.slideshare.net

どんな内容だったの

いろいろとAndroid開発を楽にできたらいいなと,そういうことで設定いじったりライブラリ使ってみたりとそんな内容です.

補足

「ButterKnife使うんならDataBinding使えば良いんじゃね?」的なことをカレーメシ先輩( @c_bata_, id:nwpct1 )に聞かれたので,一応DataBindingについても解説します.

DataBinding?

Google I/O 2015で「つけるよ!」って言われた機能.XMLjavaコードを静的ないしは動的に結合してくれます.

雑な使い方例

とりあえずは,app/build.gradleに次の記述を追加しましょう.

app/build.gradle

User.java

こんな感じに普通のPOJOなクラスをBaseObservableのサブクラスにして,getterに @Binding アノテーションをつけます.そんでsetterには notifyPropertyChanged(BR.hoge) で,変更を伝えるようにしてみます.

activity_main.xml

activity_main.xmlは,まず, <layout> タグで囲んでから, <data> で宣言を行います.この時の name 属性をMainActivity.javaで使います.その後に表示するLayoutを書きますが, android:text=@{user.firstName} の様に代入したい値を書き入れます.この時,prefixとかのmは消して先頭は小文字にします.ちなみに使えるのは参照元のクラスがpublicなメンバかgetterが存在する時です. app:onClickListener="@{activity.buttonClickListener}" の様に,Activity等に書いたリスナも代入出来たりします.便利.

MainActivity.java

MainActivityでは onCreate 内で ActivityMainBindingインスタンスを立てます.クラス名はXMLのファイル名のキャメルケースになってますね.XMLが正しければ name に書いた要素に対して binding.setUser() などのメソッドができているので,ここに代入します.MainActivityを書いた時点でこのままコードを走らせると mUser に格納した変数が setText() もしてないのに表示されてますね.ついでに app:onClickListener="@{activity.buttonClickListener}" で設定したメソッドOnClickListenerインスタンスを返すようにすると,ちゃんとリスナが実行されます.ここでは mUser.setLastName() で名前を変更しているだけですが,ちゃんと notifyPropertyChanged(BR.hoge) してあるので,変更がViewに反映されます.

細かいことは

[Android] – Data Bindingつかってみた
tech.recruit-mp.co.jp

こちらの記事に非常によくまとまっているので,こちらを参照するといいかと思います.

感想

初めて高専カンファで発表しましたが,とても良かったなと思ったりしてます.最初は「誰も来ないんだろうなーこわいなー」とか思ってたらちゃんと10人以上来てくれたり,ポジティブな反応してくれていた人も居たので,ありがたい限りです.ただもっとぶっ飛んだ内容にしても良かったかな…なんて.

カンファ自体もとても楽しかったです.基調講演に始まり,アイスブレイク,夢これ,懇親会,複数トラック(B102にしか居なかった),一般発表,LTと,充実のプログラムだったと思います.運営,発表者の方々には頭が上がりません.ありがとうございました.(発表上手い人ばっかで正直泣きそうになりました.)ちなみに夢これボードなる,夢を貼り付けまくるホワイトボードがあったのですが,5分くらい考えて「夢を探す」などと書きました.

あと,初日の夜にでなり( @denari01, id:denari01 )カレーメシ先輩( @c_bata_, id:nwpct1 ),ルータ芸人( @puhitaku, id:puhitaku )らと調布で飲んでました.いろいろあって行く店が大体潰れていて「調布って競争激しいんだな」とか言いながらどうやら電通大生の間では「DJ」などと言われているさかなや道場で「調布ビール最高」などと言ってました.くっそ楽しかったです.

補足書いてて感想書くこと忘れてしまった(☝ ՞ਊ ՞)☝

おわりに

実行委員の方々,本当にお疲れ様でした,ありがとうございました.発表者,参加者の方々もお疲れ様でした.今度は近畿圏でlolカンファがあるみたいなので,そこでもっと変な発表が出来そうならしてみたいと思います.

おまけ

クソアプリ Advent Calendar でつくったすらこん!をアップデートしたので,今回使って見ました.どうやら動きはなかなか良いみたいなので満足です.ついでに らりょすくん ( @raryosu, id:raryosu )にも貸しt…もとい,押し付けてみたところ,ちゃんと動いてました.どうやら大丈夫そうですね.

死亡フラグと編入学

この記事は Kosen Advent Calendar 17日目の記事となっております

そもそも高専生ですか

はい.元明高専生です.電気情報工学科です.今は神戸大学の工学部です.

高専生の進路について

知ってる人も大半ですが,簡単に高専生(本科生)が歩く進路について挙げると

  • 就職
  • 専攻科への進学
  • 大学への編入学
  • 退学からの大学入学(多いとは言ってない)

こんなところですね.大半が上3つに固まります.私は大学への編入学ですね.

私の編入学まで

もともとこんな感じの志望校でした

第一志望:大阪大学基礎工学部
第二志望:大阪大学工学部
第三志望:神戸大学工学部
第四志望:明石高専専攻科

ピンと来るかと思いますが,第三希望に今所属しているということは,第一,第二はツルッと滑った事になりますね.

なんで滑ったのか

当たり前の話ですが,勉強不足でした.早い人は4年,ヘタすればそれ以前から受験勉強をしているのに対し,こちらは6月に入るまで,バイトやらハッカソンやらで遊び呆けていたので,まるで勉強が進んでいませんでした.

直接的な関係は別として,うちの高専,4年生の時の年度末に産技高専の荒川キャンパスと一緒に取材されたんですよね.「プレジデントファミリー」っていうプレジデントの姉妹誌に.雰囲気的には「名門大学にホイホイ受かるお子さんを量産したいお母様のための雑誌」です.言い方があまりに失礼ですが目次をみてるとこんな印象しかつきませんでした.ごめんなさい.その時取材に呼ばれて「進路希望とかあるんですか?」って聞かれて「うーん…,阪大…行けたらいいですね…」って言ったつもりだったんですけど,(何があったのか)記事のしょっぱなに「(どくぴーの本名)はさらりと言った.大阪大学に行きます』」って書いてありました.雑誌こわい.こんな感じでビンッビンの死亡フラグを立て,見事に回収をしたというわけです.嘘ですすいません勉強しなかっただけです.ちなみに取材ではずっと課外活動のこと言ってたんですけど一切書いてもらえませんでした.かなしい.これを僕は勝手に「サラリツルリ事件」といってます.

今更考える編入学

一口に編入学と言っても,入る大学とかいろいろあると思いますが,大学編入学を志望する人の(邪な)志望理由を当時振り返ると

  • 研究したい,行きたい研究室がある
  • 大学は出ておきたい
  • そもそも大学に入るために高専入った
  • 働きたくない

などなど,考え上げればキリがないとは思いますが,そんな中でも編入学する上で考えておいてほしいことを幾つか.

ちょっと油断するとすぐフラグが立つ

編入学試験はセンター試験からの入試と比べると確かに簡単かもしれません,ですがそれ故にサラリツルリ事件程ではないにしろ,軽率な一言が露骨な死亡フラグになる可能性があります.いくら自信があってもちゃんと勉強しましょう.

複数校受験できる

編入学試験だけの強みを考えると,受験料さえ払えば国立大学が日程がかぶらないかぎり何校も受験することができることでしょう.行きたい大学をとりあえず片っ端から受験できることも,「滑り止め」とか言いながら国立大学をウケることも出来ます.ただ,受験する大学の数だけ勉強量が増えるのでそれだけは注意.ちゃんと大学ごとの受験科目を確認したり,過去問から出題範囲を絞って対応しましょう.

単位認定

3年次編入(一部の大学は2年次)する以上,必ず単位と言うのは問題になってきます.そこで「単位認定」という制度があるのですが,結構これが厄介です.「上限付きで大学の科目と対応する科目を認定する」学校がほとんどだと思うのですが,「前の在籍校でどの単位を取得していようが固定数の単位を認定する」学校があります.特に神戸大学のうちの学科がそうだったりします.大学内でも学部,学科によって制度が全然異なったりするので,ネットで調べたりしただけじゃわかりません.コネがある場合はちゃんと辿って調べるようにしましょう.ただし,どんな制度であろうと正規の学部生と比べると圧倒的に単位数が少なく,取れる限界に近い量の単位を取るかしないと進級すら厳しくなる場合があるのでご注意を

「大学生活」を満喫できるわけはない

単位のことと絡みますが,普通の大学生みたいな生活は出来ません.まぁ理系大学生っぽいと言われればそうですが.サークルと両立とか考えていると結構つらいかもしれません.サークル,バイトなんて言い出すと本当に大変な目に合うかもしれません.せいぜい2つが関の山かもしれません.

そんな「新しいこと」ばかり勉強するわけではない

高専で授業を真面目に受けていたら,編入先の学科を変えないかぎりは,大学での内容は見たことのある内容がかなり多くなると思います.そのため,新しい内容ばかり学べるかといえば,一概にそうではありません,が,もっと深く学ぶことはできると思います.

高専の枠を外れる

良くも悪くも高専の枠を外れます.高専の中だけで終わらない関係を作れたりできると思います.…半分コミュ力次第なところもあると思いますが.

とまぁ,この辺です.つまるところ,「思い描いていた大学」とは限らないということを知っておいてほしいなと思います.といっても,大学は行くとやはり楽しいって思うと思います.住めば都です.高専生の間に(遊び呆けずに)「自分が何をしたいのか」を明確に決めて進路を考えることができれば,編入学試験の面接でも落ち着いて応えることができると思います.現場からは以上です.

宣伝

あ,100カンファ行きます.複数トラックでAndroidの話をします.お願いします

ハッカソンで我を貫くのも悪くはない

この記事は Hackathon Advent Calender 12日目の記事となっております

近年,ハッカソン流行ってますね.すごい流行ってますね.僕も

e10dokup.hateblo.jp

こんな記事を書いたりしてしまいましたが,大小含めて

と,今年もなんだかんだでいろいろなハッカソンに参加してました.よく参加したことはしたけどハッカソン荒らしではないのであまり賞とかを獲得した記憶はありません.

大体のハッカソンだと,チームを組んだり,チームで参加したりして,アイデアソンでアイデアを出しあったりして,みんなで「これだ!」となったアイデアとかをハッカソンで実現していくのが普通だと(個人的には)思ってます.が,全然そうじゃない方法で挑んだハッカソンについて振り返ってみようかなと思います.

【ハッカソンレポート@大阪】Don’t Think. Hack!! Mashup Awards 11 ハッカソン予選大阪 〜ぶっ飛んだ Hackしたって ええんやで〜 | Mashup Awards

togetter.com

Mashup Awards 11の大阪ハッカソン予選です.今年のMAに申し込んだ作品のプロトタイプができたハッカソンだったりします.このハッカソン,これまで僕が参加したハッカソンと何が違うのかというと,

チームメンバーが誰もいないということです.すなわちボッチソン.

なんでそんなことになったのか

イデアソンで最初に出したネタが一番人気になったのにもかかわらず.誰も来てくれませんでした.それで,後に引けなくなったのと「楽しくハッカソンできればいいか」なんて気楽な気持ちでもともと挑んていたのと,アイデアに妙な愛着が湧いたのがあって,ぼっちを敢行しました.後々「ネタが一人でもできそうな内容だったんじゃない?」という話になったんですが,そこも含めてアイデアソンで深めていくんじゃなかったっけ…???というのは置いといて,確かに規模は小さかったなー,と今更ながら.

結局どうだったの

MA運営の方々のフリーダム具合(?)にも助けられ,唐突に一人席が用意され,みんながチームでワイワイしているところを見ながら一人モクモクとコーディングをしていました.正直寂しかったです.「一人なのでこれ絶対つらまるだろうなー」とか言いながら必死こいて作業していたのですが,なぜかどうしてびっくりするくらいの進捗を叩き出し,使ったことのないAPI,ライブラリを組み合わせながら作ったにも関わらず基本的な部分が初日のうちに片付くとかいうハイペースで作業がすすみ,今年最高に余裕のあったハッカソンになってしまいました.ちなみに作品で使った素材の権利関係をガン無視だったりしたこともあってか,何も賞はもらっていませんでした.ただ,審査員の方に「笑えた」という言葉を頂いたので僕はもう満足です.

ボッチソン,結局何がちがうのか

そんなボッチソンを幸か不幸か味わった視点からボッチソンについていろいろ考えてみようと思います.

イデアメイクがびっくりするくらい速く進む

当然です.アイデアを吟味する人が自分以外に誰も居ないので,自分の中で考えることはあってもそのアイデアに反対する人なんか誰も居ません.やりたい放題です.更にいうと自分のスキルセットに合わせてハッカソン内での目標を決めることができ,無謀なアイデアに肥大化する可能性が見事に減少します.ただし,反対する人が誰も居ないということは自分の感性「だけ」でハッカソンをすることになるので,自分が面白いと思っていただけの盛大なダダスベリアイデアを投げ込むことも当然ありえます.

作品に妙な愛着が湧く

ボッチソンで生まれた作品は他人がなんと言おうと「自分が面白い」と思ったアイデアからの作品です.スベろうがウケようが「もっと面白いものにしてやる!」という作品に対しての熱意が芽生えます.たった二日間で作ったものに対してここまでの愛着が湧くのはハッカソン,ひいてはボッチソンならではの現象かなと思います.

制約が多すぎる

まず,実現できるアイデアの幅が完全に自分のスキルセットに依存します.最近は便利なAPIとかも増えてきたりしてスキルセットの問題はある程度ごまかしが効かなくもないですが,今度は分担しようにもまず分担する相手が居ないので,当然時間的制約もチームでやるより圧倒的に厳しくなります.逆にそれを逆手に取って,自分のできることにちょっとプラスしたアイデアで「圧倒的成長👊👊👊」ごっこ(?)とかもできますね.

話し相手はTwitter

最悪です.コミュ障です.みんなワイワイガヤガヤしてたり熱心に話し合いしているのを見ながら.自分はTwitterハッシュタグを付けてメモを残してみたり,実況したりします.後でTogetterとかにまとめられようものなら,ハッキングタイム中は運営さんの実況ツイートと自分の悲壮感あふれるツイートで埋め尽くされることでしょう.

賞は諦める

ある程度ハイスペックなフルスタックできる方でもない限り,一人でチームに張り合おうとするのは大変です.勝ちにこだわるよりも,楽しくものづくりしたほうがハッカソンを楽しめるかもしれませんよ?

そもそもボッチソンできないハッカソンの可能性がある

本末転倒ですが,個人参加でもハッカソンまでにチームを編成することが要求されるハッカソンも当然有ります.優勝に賞金が絡むような規模の大きいハッカソンだとそんな気がしますね.そんな時は素直に諦めてアイデアに共感してくれる人を血眼で探してみたり,他の良いアイデアを持っている人を探してみましょう.無理に食い下がっては運営さんに迷惑を掛けてしまうかもしれません.

と,まぁ,こんな感じです.ハッカソンは"Hack"の"Marathon",楽しく完走すること自体にもすごい大きな意味があるのかなと思います.みなさんも「一緒にやってくれる人は見当たらないけどこのアイデアは絶対に実現したい!」というあるかわからないような状況に出会ったら,ボッチソンで挑んでみても良いのではないでしょうか?

意外と居ない身近な和田とそんな半生について考える

この記事は Wadavent Calendar 10日目の記事となっております

Wadavent Calendarに参加していることから察しがつくように.私も「和田」でございます.よろしくお願いいたします.

和田についておさらい

myoji-yurai.net

上記サイトによると,

【全国順位】 58位
【全国人数】 およそ269,000人

で,和田の由来は

大阪府である和泉国大鳥郡和田郷発祥の族は和田首、橘姓楠木氏流、清和天皇の子孫で源姓を賜った氏(清和源氏)、宇多天皇の皇子敦実親王を祖とする源氏(宇多源氏)、桓武天皇の子孫で平の姓を賜った家系である平氏桓武平氏)、中臣鎌足天智天皇より賜ったことに始まる氏(藤原氏)秀郷流などにもみられる。語源は、曲がっている田、輪のような地形の田、丸田から来ている。また、よい田、稔りのある田、吉田のことである。全国に姓氏・地名ともにきわめて多い。家紋は木瓜、橘、月星など。

ということらしい.ちなみに全国で一番多い姓は佐藤で,これまた先ほどのサイトを参照すると180万人以上いるとか.

そんなにいるのに…

かれこれ21年間生きてきたわけですが,身近な人(ここではせいぜい同学年や,同じ集団に属する人間)に「和田」という姓の人を見たことがありません.不思議なもんですね.27万人弱もいたら一度くらいあってもおかしくないとは思うんですが….せいぜい高専時代の学校の門衛のおっちゃんが「和田」で学校の外で会った時に朝ごはん代もらう程度に仲良くなったくらいです.結構イベントとかにも顔を出したりしているのもあって,名刺とかを頂く機会もなかなか多いのですが,その中に和田は1枚2枚あったかなー…というくらいですね.Facebookの友達一覧にはもはや和田は居ません.圧倒的ですね.よく「和田っていっぱいいるじゃんー」って言われたような記憶があるんですが,全然そんなことは無いみたいですね.

そんな21年間ですが,その中で「和田」について思ったことでも.

出席番号がだいたい最後

他の方の記事でもありましたね.出席番号がとりあえず最後です.僕の場合はフルネームがY.Wadaになるので,並の和田では相手になりません.高専時代,他のクラスに「わたなべ」「わまた」の姓の方が居ましたが,助かりました.多分「わたなべ」が濁音の力で勝てるけど,「わまた」には勝てない.ちなみに編入生や留学生とは戦う権利も与えられませんでした.

身体測定,健康診断が地獄

学校の身体測定や健康診断,高校とかでは割と空いている場所に自由に行ったりしますけど,中学とかだとクラスで固まって出席番号順で受けたりしますよね.ということは,和田はいつまでたっても終わらない憂き目に遭います.授業中に始まるような歯科検診,内科検診だともっと大変です.クラス全員が移動して保健室に行くような感じになるので,先生がその授業を自習にします.更には宿題を出します.つまり,出席番号が早い人はさっさと検診を終わらせて宿題をしますが,後ろのほう,和田ともなると,ずっと待っているだけで自習も宿題も出来ません.更には皆いなくなってとてもさみしい思いをします.

苗字で呼ばれる

下の名前が読みにくいのもあると思いますが,皆だいたいアダ名を使わない時は苗字で呼びます.「和田」「和田くん」「和田さん」など.「和田っち」などもありますね.

割と早いうちに名前が漢字で書けるようになる

和は小学3年生,田は小学1年生で習います.形もシンプルですし,漫画とか読んでたら和くらいはもっと早いうちに書けるようになるかもしれません.田中とか山田とか小学1年生のうちから書けるようになる苗字もあるにはありますが,結構早いうちから名前が漢字で書けるようになるので,小学生ながらにちょっとした優越感があったりなかったりするような気がします.

とまぁこんな感じですが,和田あるある(?)は言い尽くされている,言い尽くされそうなのでこの辺にしておきます….

これからも和田という姓を背負って生きていく所存です.よろしくお願いします.

すらこん!αをつくったよ

この記事はクソアプリ Advent Calendar 4日目の記事です.

ワイヤレスプレゼンター,あると便利なプレゼンツールですよね.無線でパソコンの前にいなくてもスライドが操作できるすぐれものです.

LOGICOOL プロフェッショナルプレゼンター タイマー機能・LCD搭載 R800

LOGICOOL プロフェッショナルプレゼンター タイマー機能・LCD搭載 R800

ですが,こいつ.高いですよね.スライドを送るだけのやつなら5000円弱で買えないこともないですが,それでも高いです.

じゃあ,作っちゃいましょう

つくっちゃいました

hacklog.jp

というわけですらこん!のご紹介です.

f:id:e10dokup:20151203222247j:plain

このすらこん!,ワイヤレスプレゼンターとの最大の違いは何処のご家庭にでもあるKonashiとArduinoAndroid端末があれば簡単に利用できます!!(外装っぽいのはArtecブロックで作ってます)

動かしてみよう

www.youtube.com

現状はアルファ版と銘打ってはいますが,このバージョンでも

  • スライドのコントロール
  • 発表残り時間のタイマー

が出来ます.上のR800でも出来ますね.どうやっているのかは先述のhacklogから御覧ください!

何がクソなのか

ここから真面目な話です

デカい

ArduinoとKonashiがデカいです.下手なマウスよりデカいです.LS1tと比較してみました.

f:id:e10dokup:20151203225503j:plain

Keynoteでしか動かない

PC側の操作はまさかのAppleScriptでシリアル通信を受け取って動かしているので,Mac OS XKeynoteでしか動きません.はい.せめてもの救いはAppleScriptを書き換えればPowerPoint for Macやプレビュー.app,Acrobat Readerに対応することはできることか…

どこのご家庭にもKonashiとArduinoAndroid端末があるわけではない

f:id:e10dokup:20151203230248p:plain

大問題です.KonashiとArduino(Uno)を揃えようと思ったら大体6000円位かかります.一番安いワイヤレスプレゼンターが買えてしまいます.本末転倒です.

今後の方針

すらこん!はクソでなくなることを目標としており,以下の方針を考えております

  • Arduinoを小さくてかつHIDデバイスとして扱うことができるArduino Microへ変更
  • KonashiからKoshianを取り出して使う(Koshian単体は1000円程度なのでだいぶ安くなる)
  • なんか受講者側の機能もつけて勉強会サポートツールに進化したら良いなぁ

AndroidとNifty Cloud Mobile BackendでAndroidのコードのみでアプリに会員登録機能を実装する

Nifty Cloud Mobile Backend(以下:NCMB)という,mBaaSサービスを利用すると,会員登録,データストア,プッシュ通知と言った,サービスでよく用いるバックエンドを要する機能がコードレスに利用できるようになる.また,Android / iOS / JS / Unity向けにSDKが公開されており,簡単に利用することができる.今回は,Android用にログイン機能らしきものを実装してみる

予備知識

何はともあれ,イントロダクションを実行してとりあえずデータストア位を試しておこう.

AndroidによるNCMBでのログイン等,会員登録機能を実装する際には,NCMBUser クラスを用いる.基本的にはドキュメントを参照すると大体の使い方がわかるのだが,毎度毎度ログインを繰り返さなくても良いように,NCMBUser#getSessionToken メソッドを用いると,String型のトークンが登録済みであれば返ってくるので,こいつをnullチェックしてやれば,初回起動かそうでないかを判別できる.Activity#onCreateにて NCMB#initialize 以降で NCMBUser#getSessionToken を実行してトークンのnullチェックを行い,初回起動かそうでないかの分岐をかければ良いと思う.ドキュメントをみてると, NCMBUser#getCurrentUser にてログイン中のユーザを取得できるとあるが,こいつを初回起動の判別に使おうとすると取得した NCMBUser に対して NCMBUser#getUserName までしてnullチェックをしてあげる必要があるので,初回起動の対応だけしたいのであれば前者のほうがいいかなー,とは思う.初回起動時に NCMBUser をシングルトンで持たせたい場合はこちらで初回起動判別をして保持させたほうが良さそうな気もする.

初回起動判別

基本的には先述の初回起動判別を行い,基本画面ないしは初回登録/ログイン画面への遷移を行うのが普通と思われる.具体的には Activity#onCreate 内で

if(NCMBUser.getSessionToken() == null) {
    replaceFragment(new SignUpFragment(), false); //初回起動時
} else {
    replaceFragment(new MainFragment(), false); //通常起動時
}

としてやれば良い.replaceFragment についてはただのFragmentのreplaceなので各自補完してほしい.

会員登録・ログイン

とりあえず,ここではドキュメントにも書いてあるID・パスワードのみの登録を行うことにする.ドキュメントそのままではあるが会員登録,ログイン用の画面をFragmentで実装しておく(先述コード内のSignUpFragment及びLoginFragment).ID,パスワードを入力させ,登録ボタン,ログインボタンにつけた OnClickListener 内にて

登録は

@Override
public void onClick(View view) {
    // 各EditTextからID/パスワードを取得
    String id = mIdEdit.getText().toString();
    String pass = mPassEdit.getText().toString();

    // NCMBUserへID/パスワードを代入
    NCMBUser user = new NCMBUser();
    user.setUserName(id);
    user.setPassword(pass);
    user.signUpInBackground(new DoneCallback() {
        @Override
        public void done(NCMBException e) {
            if (e != null) { // 登録失敗時
                Log.d(TAG, e.getCode());
            } else { // 登録成功時
                Toast.makeText(getBaseActivity(), "Sign up succeeded!", Toast.LENGTH_SHORT).show();
                replaceFragment(new MainFragment(), false);
            }
        }
    });
}

ログインは

@Override
public void onClick(View view) {
    // 各EditTextからID/パスワードを取得
    String id = mIdEdit.getText().toString();
    String pass = mPassEdit.getText().toString();

    // NCMBUserへID/パスワードを代入
    NCMBUser user = new NCMBUser();
    user.setUserName(id);
    user.setPassword(pass);
    try{
        user.loginInBackground(id, pass, new LoginCallback() {
            @Override
            public void done(NCMBUser ncmbUser, NCMBException e) { //ログイン成功時
                if (e != null) {
                    Log.d(TAG, e.getCode());
                } else {
                    Toast.makeText(getBaseActivity(), "Login succeeded!", Toast.LENGTH_SHORT).show();
                    replaceFragment(new MainFragment(), false);
                }
            }
        });
    } catch(NCMBException e) { //ログイン失敗時
        Log.d(TAG, e.getCode());
    }
}

以上のようにすると初回起動時の会員登録/ログインの処理が簡単に実装できる.

ソースコード

一応ここまでのコードはDagger2,ButterKnifeと言ったライブラリが用いられているものではありますが,github上に公開してます

github.com

終わりに

…ちょくちょくNCMB関連の記事投げつけられたらいいなぁ

#ma11 にてBDDを提唱してきた

今年も Mashup Awards が終了しました.今年は「Team.fuckin-specs」を名乗って主に関西付近で様々なシーンに出没しました.

つくったもの

hacklog.jp

音声認識した言葉のネガポジ具合に応じて動画とか音楽とかレコメンドしてくれるアプリ.サービスではありません.アプリです.細かいことはHacklogを見たほうが速いと思います(?)

ありがたいことに言語解析APIを利用させていただいたエクシングさんよりエクシング賞として,ハンディモップとウェットティッシュとティッシュとJOYSOUNDの1000円クーポンを「5人分」頂きました.Team.fuckin-specsの構成員は1人なので,実質エクシング賞を5つ頂いたようなものですね.ちなみにエクシングの人には去年渋谷ヒカリエで土下座したただならぬ因縁があります.

今年出たイベントを振り返ってみる

NAIST ハッカソン

フラグ立てまくって大変な目に遭いました.ここから当時のフラグ具合が見れます

大阪アイデアソン

【アイデアソンレポート@大阪】Mashup Ideathon 大阪〜WebAPIを使ってMashupサービスを妄想しよう!! | Mashup Awards

togetter.com

寿司を食いながら「かわいい」を皆に見てもらう「どきどき動画」なるどこかで見たタイトルで勝負.だが知ってる人軍団が打ち出したウンコに一票差で負ける.関西では「可愛いよりウンコ」であることを思い知らされた瞬間でした

大阪ハッカソン

【ハッカソンレポート@大阪】Don’t Think. Hack!! Mashup Awards 11 ハッカソン予選大阪 〜ぶっ飛んだ Hackしたって ええんやで〜 | Mashup Awards

togetter.com

ここでついに無能プラットフォームの前身,無能のミサワが爆誕.kintoneにぶち込んだ1765枚のミサワ画像を引っさげ,煽り会話のドッチボールを実現するも審査員さんの「権利関係やばくね?」の言葉を聞いて,不安になって公式に相談するも,見事に止めるように言われて無事に死亡.

MBSハッカソン:アイデアソン予選

MBSハッカソン-Hack On Air-アイデアソン予選 #MA11 #mbshack - Togetterまとめ

つなぎブラック生誕.しかし黒だと地味すぎて大半の人に「つなぎの人の一味」とは認識されなかった模様.チーム参加のはずだったのに分離して,結局面白いアイデアが出せずにブラブラしてたらつなぎが再度集まりだしつつあったので合流して面白いアイデアになったものの,どうやらお金に糸目をつけなさすぎたようで敗退.「お金」って難しいですね

10/29くらい

エクシングの人から「おい無能うごかねぇぞ」的なメッセージが届く.動かなかった理由はエクシングさんのサーバリプレースに対応するのをわすれていたからだったものの,流石にこのままMA応募を終わらせるとまずいので半泣きで10時間くらいかけて無能プラットフォーム:Phase-1が完成.

大阪1st

【Battleレポート@関西】Mashup Battle 1stStage in 関西 | Mashup Awards

togetter.com

ここで勝てなきゃ2ndには今年は行けないという,背水の陣,その割には勝てそうなつもりがあまりなかったという.結果としては同率1位の決選投票同率1位からのじゃんけんで2nd進出.どうやらわからないけどここで死ぬべきではないと神が言っていたようだ.

学生部門賞決勝

【部門賞決勝レポート】学生部門賞 | Mashup Awards

togetter.com

この部門賞に応募していたことすら記憶がなく,メールが来て「えっ,この部門賞に応募していたのか…」となったというすでに怪しい.1stの二日後で,何ができるかなぁと考えた結果,何故か「アップデートを敢行する」という発想に至り,新幹線と会場傍にあったミスタードーナツの中でkintoneのDB上にレコメンド検索ワードを皆で追加できる機能を実装し,無能プラットフォーム:Phase-2をロンチ

2nd

【準決勝レポート】Mashup Battle 2ndSTAGE〜第一部〜 | Mashup Awards

togetter.com

なんだかんだあって今年も無事に転がり込めた2nd.ちなみに学生部門賞決勝の5日後で,何ができるだろうと考えた結果,再び何故か「アップデートの敢行とスライドの全修正」という発想に至り,今度は音楽のAmazon検索機能を実装し,無能プラットフォーム:Phase-3をロンチ.またもし勝てるようなことがあればもう一回アップデートしようかなーと思ってたものの,ここにて無事終戦.お疲れ様でした.]

final & 授賞式

【決勝レポート 】Mashup Battle FinalSTAGE〜全作品紹介〜 | Mashup Awards

togetter.com

去年は観客で来たけど,今年は「MAサポーターになったのはいいけど何もお手伝いしてない」という圧倒的事実に気づき,決勝スタッフを志願.受賞盾を生産したり,会場の背景の板を貼ったり,出場者の発表チェックをお手伝いさせていただいたりしました.そして授賞式,エクシングの人が見つからなくて「受賞者がプレゼンターさんを呼びに行く」というおもしろチャレンジをしました

打ち上げ

もらった副賞をガッツリ忘れる.圧倒的である.別のスタッフさんが持ってきてくれたので即座に土下座.ヒカリエには呪われているとしか思えない.そして伴野さんが誕生日なので,皆で寄せ書きを書く.ついでにkirinsan.orgの人と写真を撮り,何故か「ウンコで臨みません」という誓いを立てる.

102人パパパルーレットで奇跡的に約1%10の戦いに勝ち抜き,エレコムのモバイルブースターを頂きました.ついこの間同じエレコムの旧型のモバイルブースターがバッテリ膨張でお亡くなりになっていたので,とても嬉しかったです.

結局BDDってなに

BDD:Battle Driven Development,バトル駆動開発の略.たくさんのプレゼン機会が存在するMAでのみ実行することができる開発手法.各発表の直前にアップデートを重ねることで,プレゼン及びデモに内容を付加し,目新しさを演出する際に用いる.

謝辞

Mashup Awards事務局並びに参加者の方々,今年もお疲れ様でした.非常に楽しませていただいて,ありがとうございました.来年のMA12でもBDDの提唱者に恥じぬ何かをしようと思います.また,エクシングさんも5人分の副賞,本当にありがとうございました.あと会場に副賞をすっぽかして申し訳ありませんでした.来年はこのようなことがないよう,誠心誠意荷物管理をいたしますので,どうかご容赦くださいますよう,よろしくお願いいたします.