Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

IT勉強会での初プレゼンなどお助けします!

勉強会でスピーカーをやりたいけど、プレゼンが初めて、苦手という方に無償でコーチできます。スライドのレビューや録画したリハへのアドバイスなどなど。Twitter@jyukutyoまでメンションでもDMでもお気軽にご連絡ください。

私はIT講師の経験があり、プレゼンはデブサミやJJUG CCCなど200人規模の経験が豊富で最大800人の前でプレゼンしました。海外ではDevoxxUSで。デブサミ2017では公募スピーカー1位、デブサミ関西2012アワードで5位となりました。

スマートフォン向けスポーツサークル出欠管理Webアプリを作りました

趣味と実益を兼ねて、

スマートフォン向けスポーツサークル出欠管理Webアプリ

「SMART Scheduler for sports circles」を作りました!

サークルを登録する仕組みがないので、

利用者は今のところ自分が所属するチームのみですが。


勉強がてらネイティブアプリで作りたいとも考えましたが、

やはりAndroidとiOS両方作るのは個人では大変なので…


今回はjQuery Mobileで作りました。

すげーよ、jQuery Mobile。

閲覧と登録ぐらいのWebサイトなら、

スマートフォン向けは全部これでいいんじゃない?

とか思っちゃいました。


こんな感じです。

f:id:jyukutyo:20120104150430p:image


ロゴはフリーのジェネレータで作成しました。

バリデーションは、jQuery-Validation-Engineを使っています。

https://github.com/posabsolute/jQuery-Validation-Engine

ログインすると、スケジュール一覧が見れます。


f:id:jyukutyo:20120104150422p:image


3件ごとにpaginateします。

f:id:jyukutyo:20120104153800p:image


登録するボタンを押すと、出欠登録画面に遷移します。

f:id:jyukutyo:20120104150424p:image


expandして、スケジュールの詳細を見ます。

f:id:jyukutyo:20120104150425p:image


出欠を登録します。

f:id:jyukutyo:20120104150426p:image


f:id:jyukutyo:20120104150427p:image


メンバーリストを見たりもできます。

f:id:jyukutyo:20120104150423p:image


f:id:jyukutyo:20120104150428p:image


スケジュールやメンバーを登録する、

管理者サイトも作りました。

f:id:jyukutyo:20120104150415p:image

f:id:jyukutyo:20120104150416p:image


こちらは、jQuery UIとTwitter Bootstrapで作りました。

スケジュール登録画面です。
f:id:jyukutyo:20120104150418p:image

DatePickerで日付を選択します。
f:id:jyukutyo:20120104153634p:image


メンバー登録画面です。

Dialogで登録します。
f:id:jyukutyo:20120104153258p:image


登録後は一覧に表示します。
f:id:jyukutyo:20120104150419p:image


アカウント変更画面です。

パスワード変更もできます。
f:id:jyukutyo:20120104150421p:image

サーバーサイド

言語はRuby 1.9です。

Webフレームワークは、Sinatraです。

見てのとおり、単純な読み書きしかないので、

Railsだと大仰すぎるかな、と考えました。


サーバーサイドで入力値を検証してないので、

不特定多数のチームが利用するなら、

改修しなければならないでしょうね。


RDBMSは、MySQL 5.5です。

Rubyからは、Sequelでアクセスしてます。


テンプレートエンジンは、Slimを使いました。

CSSはSassで書きました。

複雑なHTMLでもないので、素で書いてもいけたけど…

まあ修練ってことで。


ホスティングは、前のエントリからわかるように、

DotCloudを使いました。

Gitのローカルリポジトリにコミットして、DotCloudのコマンドからpushすると、

あとは勝手にデプロイしてくれる、ほんと楽でした。

DotCloudは、Webサーバがnginxで、RackサーバはPassengerみたいです。

RDBMSも選べるけど、MySQLにしてます。


ドメインは、お名前.comで取りました。

苦労した点

Ruby 1.9でSequelを使ったとき、

文字列でASCII文字以外はforce_encoding()呼び出して出力しないと

例外が発生してしまう点が一番ハマりました…

最初何で例外が発生しているか、全然見当がつかなかったので。

どれくらいでできた?

不慣れなRubyなんで、

なんやかんやで40hはかかったかな…

スマートフォンサイトと管理者サイト合わせて。


1日8時間やれば、1週間か。それぐらいです。