みなさんこんにちは。
2016年3月27日はVKモバイルチャレンジで終了しました。
コンテストの条件はここで読むことができ、参加の歴史に興味があるすべての人に、猫の下で歓迎します。
はじめにまたはそれがどのように始まったか
2月末のある日、あるITプラットフォームのモバイルアプリケーションのリボンをめくって、VKontakteが賞金プールでモバイルアプリケーションコンテストを開始しているという記事に出会いました。 リンクをたどって、参加したいという強い願望があったことを読んだ後、要件と条件の説明を見ました。
午前中、彼らは私たちのチームによって償却されました。 当時、すべての専門家はプロジェクトに参加しており、無料のリソースはありませんでした。 話し合った後、私はプロジェクトを一人で書くという決定を下しますが、予期しない問題が発生した場合は、同僚が助けに来ます。
方向を決める
開発者には、次の中から選択するいくつかの指示が提示されました。
- モバイルデバイスからライブブロードキャストを実行する。
- 管理されたコミュニティVKontakteの管理。
- VKontakteで写真を管理し、モバイルデバイスのギャラリーと同期します。
- VKontakte Goodsサービスに基づくマーケットプレイス。
- VKontakteで動画を見る:カタログ、推奨事項、プレイリスト、検索。
- コミュニティやイベントVKontakteとの相互作用。
- ビデオを編集してVKontakteに公開します。
- VKontakte文書管理。ファイルを便利にプレビューする機能(書籍を読むなど)。
商品を入力した後、VKontakteはそれらを試してみるのが面白かったです。 私は、コモディティメソッドを使用してアプリケーションを作成することにしました。 この瞬間まで、開発者向けのセクションを開いたことがなく、VKontakte APIまたはVK SDKについてまったく何も知らなかったという事実によって、すべてが複雑でした。
開発の余地が1か月ありました。 心を込めて、このようなかなりの量のコードだけを実現できるかどうかには大きな疑問がありました。
私が持っていた環境から-moqups.com、私たちのチームredmine、gitリポジトリ、AndroidStudioによってデプロイされました。
2月26〜27日の夜、紙と黒のジェルペン(黒のジェルペンが大好きです)とコーヒーバケツで武装し、最初の計画と設計を開始しました。 API記述を数時間積極的に吸収した後、最初のタスクはredmin'eで生まれました。
2週間の活発な開発の後、「backlog」という名前の2番目のタスクが登場しました。そこで、思いついたすべてのウィッシュリストを書き留めました。 私は認める-ほとんどの計画は実施されなかった。 時間の無駄な不足。
ネタバレ
今後、申請がまだ間に合ったと申し上げます。申請を提出することができました。 しかし、それは正直なところ、ああ、どれほど難しいかでした。
アプリケーションのアイデアは次のとおりです。製品が含まれるグループを持つユーザーに、グループデータと製品、マネージャー、メンバーの両方を完全に編集/管理する機能を提供します。
それから私は驚きが私を待っているのか分からなかった。 皮肉なことに、コンテスト終了の1〜2週間前に、公式のAndroidクライアントが更新され、ユーザーはグループを編集する機会を得ます。 Sel la vi :)この事実は私を悲しませませんでしたが、逆に私たちが正しい軌道に乗っているという強さと自信を与えました。 開発が続けられました。
それとは別に、視覚的なコンポーネントに触れたいと思います。
美しさと美しさの感覚で、私はあなたに来ました(私は記事の中ですべてがどれほど悪いかを示しました:()。まあ、何がそこにあるのか...指定、それはもはや現れません...
もちろん、これはアプリケーションの使いやすさに影響を与える可能性があります。 機能部分に重点が置かれました。 理想的には、大量のアプリケーションではなく、ツールが開発されました。 そして、残念なことに、時間はまったくありませんでした。 インターフェースの設計を開始するが、間に合わない可能性が高いか、機能部分の開発を継続するかのいずれかを選択しました。 開発が続けられました。
あなたの許可を得て、アプリケーションにいくつかのインターフェースの欠陥を許します。 幸いなことに、これらの行は記述されていますが、UI処理プロセスはすでに開始されています。
最後に何がありますか?
アプリケーションの締め切りは、2016年3月27日23時59分(モスクワ時間)に決定されました。
2月26日土曜日と2月27日日曜日は、テストとグローバル編集に割り当てられました。 これは、チームが救助に来る場所です。 同僚に送信されたapkを収集しました。 私にとっては、この2日間が1つの無限のマラソンになりました。 週末の間、私はほんの数時間寝ることができました。 しかし、27日の夕方になります。 すべて準備完了です。 アーカイブを収集し、アイデアを説明して送信します。 それだけです ポイント。 時間がありました。 みんなできました。
難しさとその解決策
この場所を読んでくれてありがとう。
私にとっては、VKontakte APIを使用した最初の真剣な経験だったので、開発の1か月の間に遭遇したこれらの困難の解決策を共有したいと思います。
1)証明書のインプリント。
非常に長い間、別のマシンでビルドされたアプリケーションを起動できませんでした。 結局のところ、ポイントは指紋です。 今、私たちの見落としが思わず笑顔を引き起こすことは、私たちにとって非常に明白です。
チームごとにVKontakteのアプリケーションを開発している場合、各コンピューターには独自の指紋があります。設定で開発者のすべての指紋を指定することを忘れないでください。
ここに:
2)ログインしようとするたびに、アプリケーションはアクセスを要求しました。
VKontakteの開発者がAndroid SDKに気高く入れたテストケースを収集すると、問題が何であるかが明らかになりました。
Androidのドキュメントでは、このメソッドの説明は見つかりませんでした。
VKSdk.wakeUpSession(this, new VKCallback<VKSdk.LoginState>() { @Override public void onResult(VKSdk.LoginState res) { switch (res) { case LoggedOut: startActivity(new Intent(SplashActivity.this, LoginActivity.class)); finish(); break; case LoggedIn: Intent intent = new Intent(SplashActivity.this, ListGroupsActivity.class); startActivity(intent); finish(); break; case Pending: break; case Unknown: break; } } @Override public void onError(VKError error) { } });
このメソッドは、onCreate SplashActivityで呼び出されました。
3.ドキュメントのメソッドの説明、特に結果ブロックを注意深く読んでください。
メソッドはエンティティのコレクションを返すことができますが、エンティティの配列を返すことができます。 最初の数日間、クエリ結果の誤った解釈に非常に頻繁に遭遇しました。
結論と結果
申請書は25人で1人によって作成されました。 平日、私は夕方にプロジェクトに座ったが、しばしば朝まで残った。 朝から夕方までのすべての日がプロジェクトに参加しました(私を理解し、できる限り私を助け、サポートしてくれた妻にとても感謝しています)。 1日平均7時間でした。
アプリケーションの使用を開始するには、所有者であるか、商品を扱う一般のリーダーのメンバーである必要があります。
アプリケーションは次のことができます。
a)グループに関する情報を編集します-「コミュニティ管理」ページに似ています。
b)参加者、マネージャーのリストの管理。
c)ブラックリストと禁止設定の管理。
d)リンクリスト管理
e)商品の検索とフィルタリング
f)パブリックおよび選択した商品の両方からの商品の編集/追加/削除
g)コレクションの編集/追加/削除
h)製品のカバーとコレクションから写真をダウンロードして削除します。
一般的に、私たちは仕事が終わったことに非常に満足しています。 これは、開発プロセスにエラーや遅延の余地がない極端なプログラミングでの大きな経験です。
ご質問、ご提案、ご要望、批判がある場合-私は喜んで聞きます!
ご清聴ありがとうございました。
すべての人に良い!