Saturday, March 24, 2012

mixi API SDK for iOS sucks

この記事は仕事で使ったmixi API SDK for iOSの感想を記録したものです。完全に個人の意見です、勤務先の会社と全く関係ありません。

このエントリーを書いた時点の最新版はV1.3.2(March 1st, 2012)です。その後、V1.3.3 (March 15th, 2012)がリリースされました。

問題

1.3.3なのに、Sample プロジェクトがない?

どういう基準でリリースしたのか全くわかりません!リリースにokを出した人は絶対エンジニアではないと思います。

1.3.3なのに、ソースコードにテストケースがついていない?

mixi社内にはあるかも知れないですが、リリースしても良いじゃないですか?リリースできない理由が分からないです。

V1.3.2の時、OAuthのtokenを取得したら、store/restoreができないというバグがありました。それはありえないでしょう! 一応僕がこのバグをmixiの開発者に報告して確認してもらって、3/15にリリースされた1.3.3で直されました。

ちなみに、1.3.3と1.3.2のdiffを見てみたら、このバグだけを直しました。

iOS 4のリリースからまもなく2年, iOS 5のリリースから半年, まだBlockを使っていない?

iOS 4.0は2010年6月21日に正式にリリースされて、iOS 5.0は2011年10月12日に正式にリリースされました。

つまりmixi API SDK for iOSを開発し始めた時点は既にBlockとGCDを使えました。何故か使っていないのか分かりまへん!

APIのリクエストとリスポンスがセットにしていない

何故かセットにするのが必要ですか?簡単な例です:mixi Photoのアルバムを取得するために、必ず2回のAPIリクエストを叩かないと行けないです。なぜなら、簡単公開のアルバムのリクエストとその他アルバムのリクエストが違います。

そもそも、Blockを使えばこれは一発で解決できます。現在僕らが苦労をしないとdelegateのメソッドが呼ばれる時、どのリクエストからのリスポンスのかさっぱりわかりません。 mixi公式アプリでは全部一つのページで一つのAPIをしか叩かないですか?

最悪:削除などのリクエストが成功したら、エラーのdelegateメソッドが呼ばれます!

なぜかというと、JSONの解析が失敗した!何だと!!!?レスポンスはHTTP 200のみです。テストする時、削除などのテストをしないの????馬鹿野郎!

全体的に用語を統一していない

認証時client_idを用いて認証用のAPIはありますが、doxygenで生成したdocにclient_idについて、何も言及していない、公式サイト上はこのような2つ矛盾な表記があります:

  1. client_id = consumer_key, googleの検索結果も全部Consumer keyの意味です。しかも、同じ技術仕様の中に、AndroidもConsumer keyの意味です。
  2. client_id = mixi-phone-ios_xxxxxx,しかし、このページではxxxxxxの意味は一切説明していなかった。

もう。。頼むよ!xxxxxxの説明を追加してください!

公式app経由の認証は実機でしか使えない

シミュレーターではSDK経由の認証ができるのに、docに一切記載していないです。自分でも全部実機でテストとデバッグをやていたんですか?偉いね!

Source Codeを公開しているのに、githubなどを使っていないの?

Zipファイルベースのソースコード配布は不思議だと思います。まだ2000年にいるの?

公式アプリの作りが悪い、認証失敗は日常茶飯事

URL schemeから起動した時の挙動がおかしい、通常のアプリロジックと混ざっています。URL schemeからの起動であれば、明らかに認証の事を優先すべきじゃないですか?

ユーザから見ると、「なに??」と思うしかないでしょう。

adプログラムのviewのaddOnTopaddOn:メソッドは全然tab viewとnavigation viewを対応していない。

そんな簡単にaddSubViewを使って、回せられるの?ちゃんと自分でテストしたのがい???

なお、fade in/fade outなどのanimationを全く考えていないでしょう。ちょっとだけその考えがあったら、アイコンの背景色を除くべきでしょう??

mixi API SDK for iOSを使うと、ストレス対策を事前に用意したほうがオススメ

mixiとFacebookの戦いはもう既に勝負が見えるでしょう。僕は見えました。

僕がコードレビューを提供しましょう

もちろん、mixiはまだまだ伸びていきたいでしょう。世界のユーザーを獲得などを別に置いといて、日本国内の市場シェアを維持もしくは拡大していきたいでしょう。その考えがあれば、サードパーティの開発者を失望させるのは嫌でしょう。それを考えたら、僕の力を貸してあげますよ。

この記事はタダですが、コードレビューを1時間5万円で提供できます。欲しいなら、ご連絡ください。



Via Tonny Xu http://feedproxy.google.com/~r/tonnyxu/~3/OMXcuWo3XP0/ General, iPhone Dev

No comments:

Post a Comment