Skip to content

Instantly share code, notes, and snippets.

@hayashikun
Last active August 29, 2015 14:10
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hayashikun/fbb5e7fb34b61369f6b6 to your computer and use it in GitHub Desktop.
Save hayashikun/fbb5e7fb34b61369f6b6 to your computer and use it in GitHub Desktop.
KOANアプリ開発之記

#はじめに KOANアプリ開発について書きます
Android版とiOS版(Swift)の開発です

自己紹介

理学部化学科B2です
PythonでWebとかAndroidアプリ開発してます
Objective-Cは未経験ですが、SwiftでiOSアプリ開発は最近始めました

KOANとは

阪大生ならご存知でしょうあの使いにくいヤツを
阪大の履修登録とかするWebシステムです
特にスマホのWebブラウザで見難いことこの上ない…
実はアレ、新日鉄住金ソリューションズ株式会社の出してるキャンパススクエアって製品らしいです
ってなわけでKOANをもしもしから簡単にいじれるやつをつくろうってわけです

KOANのログインの仕組み

世の中にはいろんなWebサービスがありますが、ログインする仕組みも様々あります
アプリ系だとTwiterみたいにOAuth認証のヤツが最近多い気がしますね
でもやっぱりブラウザではSessionでやるですね、KOANもそうです
KOANはSSO(シングルサインオン)を採用してSAMLで認証してます
KOANにOAuth認証する機構なんて載ってません

SAMLとは

KOANって一括りに言っても阪大生が使うWebシステムはKOANだけじゃなくてCLEとか諸々あります
それぞれのログインに毎回UserIDとPassword入力投げてってのはアレすぎるのでSSO(シングルサインオン)ってのを採用してます
SSOってのは「一度の利用者認証で複数のコンピュータやソフトウェア、サービスなどを利用できるようにすること。」です
つまり、阪大のWebシステムへのログインはsso.auth.osaka-u.ac.jpで行われて、一旦ログインしてしまえばkoan.osaka-u.ac.jpとかcle.koan.osaka-u.ac.jpもetc...も再度ログインすることなく使えるってことです
詳しくはWebで!(KOANにログインしてネットワーク見てみて)

諸々の機能

時間割表示は実装しました
あとは掲示板取得と単位表示かな
GPA計算とかも自動でしたいですね
全部HTMLを正規表現で読んでチョメチョメしてなんで結構つらいですね
ただ一番つらいのはViewのデザイン…美少女専属デザイナー…求む…

Android開発

もうそこそこ慣れてきて結構スムーズに行ったんですが、スレッド間、HttpClientとWebView間でのCookieの受け渡しがだるかった…
リリースしてから100人ほどにインストールして頂きました、ありがとうございます
KOAN for Android

iOS開発

Apple謹製の話題の新言語、Swiftで開発しました 開発を始めてからまだ一ヶ月程度しか経ってませんが、開発してみた感想は

  • 言語仕様はめちゃくちゃ好き
  • ビルド遅すぎ舐めてんのか速いんちゃうんけボケ
  • Xcode氏~~~~~落ちないでくだされ~~~~
  • まだまだネットに情報なさ過ぎ…Objective-Cわかんないお…よくこんなキモい文法でみんな開発してたな…
  • 実機デバッグとかめんどくさすぎ(ぶちぎれ) Swiftはいいけど全体的にウ---ンって感じです、Mac新しいの買います、Corei5 メモリ4GBはキツイ…
    まだリリースできてませんが、審査が怖いです、

今後

まだ実装できてる機能が少ないのでどんどん機能拡充させていきたいですね
GCMとかAPNs(これがまたクソめんどい)使って特定の人に通知送るとか面白そう
KOANアプリ使って告白とかめっちゃCOOOOLじゃないすか!!!
OUCCCCの時にでも考えてる次の機能実装しようかと思ってます

PS

ただこのアプリちょっとグレーなんですよね怖いヨー
広告とか乗っけてえーって感じもあるんですがね
うーん…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment