Ubuntu Phone、コアアプリケーション。 内観

こんにちは、habrachelovek!




画像








Ubuntuのホームページで、再びカウントダウン。 署名には、「/ 2つの表面が交わる線」とあります。 どのイベントに専念したのかわかりませんが、あるサイトのコメントでは、彼らは冗談を言っています-「CanonicalはUbuntu冷蔵庫をリリースします」。 そして、Ubuntu Phoneについて話している場合、その署名は非常に真実です。 一方では、ネガティブ性の突風(「別のモバイルOS」など)、もう一方では、スマートフォンでお気に入りのOSのリリースをできるだけ早く見たいという誠実な願望。 ご存知のように、Ubuntu Phoneの発表とともに、ボランティアがこのOSの12のコアアプリケーション(コアアプリケーション)の開発に関与したことも報告されました。 いずれかのチームのメンバーとして、興味深いと思われる情報があることがわかりました。 この記事は「最前線からの眺め」のふりをしているわけではありませんが、単純な物語の形式で、私たちの作品の詳細を内側から語っています。 さらに、プロセスに関する情報を共有することを約束しました。 一方、私は感情なしにすべてを伝えることはできないので、記事には非技術的な詳細と芸術的なナレーションがたくさんあります。 しかし、もし興味があれば、カットをお願いします!



それがすべて始まった方法


そして、それはすべて(多くの素晴らしいことのように)自発的な決断から始まりました。 たまたまその前に私はオープンソース開発に参加していませんでしたが、私はいつも望んでいました、そして、ここで彼らが言うように「成熟」していると感じました、そして私の開発の詳細、Qt Quick。 サイト上の簡単なフォームに記入しました。 C ++、QML、およびJavaScriptのレベルを指定する必要がありました。 さらに、正直なところ、チェックはありませんでした。 送信して忘れました。 数日後、手紙が届いたが、その内容は意味をなさない、要するに、「あなたは私たちに合って、開発に参加することを選んだ...ドラムロール... RSS Reader'a!」。 「同意する」と言うだけで、あとは...



チームビルディング


最初は、アプリケーションのテーマについて非常に軽薄でした。 「誰でもRSSリーダーを実行できます。」 XMLの例でも、ニュースフィードでさえ解析されることがよくあります。 そして、正式に言えば、RSSリーダーの作成はかなり簡単な作業であるため、私は間違っていませんでした。 ただし、Ubuntuの精神を取り入れた、コンセプトと革新に満ちたUbuntu Phoneにふさわしいアプリケーションを作成することはできません。 しかし、私は少し後でこれに来ましたが、その後何が起こったのですか? それから、なぜ15人(!)のメンバーがチームに募集されているのかと思っていました(個人ではなく、ご注意ください)。 正規労働者、プロジェクトマネージャー、ボット(ジェンキンスなど)がマイナスの場合、7〜8でしたが、それでもバストのように見えました。 ただし、これは間違いなく実証済みのソリューションです。 最初の数日間は開発されていませんでしたが、プロセスの形成のみで、数人がすぐに退職しました。 誰かが個人的な問題を抱えている、家族の誰か、誰かが時間を使い果たしている、誰かが猫の誕生日を持っている=)しかし、事実は残っています。 合計で、チームに残ったのは3人だけでした。私、ジョーイ(中国)、スベンアルネ(スウェーデン。彼がロシア語で二重名を正しく書いたかどうかはわかりません)。 私のチームメートは両方とも、Qt(平均4年)とQML(2年)を使用した開発の経験が豊富です。 しかし、そのような経験があっても、彼らは時々自転車で私を驚かせました。 「白鳥、ガン、パイク」という古典的な始まりがあり、とても幸せでした。 おそらく誰もが判断する勇気はありませんが、私たちはすぐに混乱に対処しました-勤勉なジョーイは開発の主要な段階でドキュメントをスケッチしましたが、最初の作業モデルの形で基礎を築きました。



目標と手段


そのため、Ubuntu QML ToolkitとQt Quickを可能な限り使用してRSSリーダーを開発することが目標でした。 ブリーフィングはまた、C ++モジュールが最も重大な状況でしか書けないことを意味しました(例えば、客観的な理由でファイルマネージャチームのメンバーはすぐにC ++に頼りました)。 Qt QuickはOSのグラフィカルインターフェイス全体に基づいていると言いたいのですが、これはライブラリのフォロワーにとって朗報です。

最初の段階では、私たちのチームにとって、RSSフィードの読み込みと解析の問題を克服することは困難でした。RSSフィードは、洗練された読者がおそらく知っているプレーンXMLです。 XmlListModelはurlをソースとして使用できますが、ロードが失敗した場合に必要な情報を提供しません。 その後、XMLHttpRequestを思いついた後、2つのXmlListModel(テープ全体とそのエントリに関する情報を個別に解析)を実行しました。 それにもかかわらず、このような実装は実際のプロジェクトよりもデモに適しています。これは、少し「単純な」chtoliだからです。 RSSでの作業にサードパーティのサービスを使用するように切り替えるための積極的な作業が進行中です。 オフラインで読むための情報を保存するために、Qt Quick Local Storage API(SQLiteを読む)を使用しました。 投稿自体でさらに実装の詳細を明らかにする価値があるかどうかわからない場合は、コメントで回答する方が良いでしょうか?



開発と協力


実際、私たちの共同活動はすべて、ランチパッドWebサイトを使用して解決されます。 バージョン管理システムとして、bazaarを使用することが提案されました。 それ以前は、個人プロジェクトでgitを使用した経験はあまりありませんでしたが、bzrとの類似性を引き出し、新しいバージョン管理システムを特に問題なく使用するのに十分でした。 原則は標準です。新しい機能用に新しいブランチが作成されますが、これは原則として個人用であり、トランクとマージされます。 幸いなことに、Qt Creator(ちなみに、追加のメニュー項目などを含むカスタムバージョンのcriratorはSDKに含まれています)には、bzrを操作するための組み込みツールがあります。 タスクの配布は、ブループリント-タスクのリストと開発者へのバインドを含むドキュメントを使用して行われます。 それらは、非常に単純な構文、[名前]タスク:進行状況を持っています。 進捗状況は、TODO、DONE、INPROGRESSになる可能性があります(おそらく他にもありますが、これら3つは私たちに求められていました)。 このサイトには、ブループリントを使用してプロジェクトのタスクの実行を視覚化する内部ツールがあります。 コアアプリのすべての進捗状況の視覚化も非常に有益です。 このサイトには、内部バグ追跡システムも含まれています。 残念ながら、ツールキット開発者向けのバグを登録する必要がある場合があります。 ちなみに、これらの同じ開発者は、特定の機能の実装にQt Quickの方法を使用しないことが多いので、そのような場合にもコメントを作成しようとします。



ミーティング デザイナーとのコラボレーション


木曜日には毎週チームミーティング(マネージャーも出席)があり、金曜日にはデザイナーとのミーティングがあります。 内部会議(IRCで行われます)では、まず、ロックがあるかどうか、すべてが順調に進んでいるかどうか、時間どおりかどうかなどを見つけようとします。 一言で言えば、組織の問題。 ああ、2つありました=)金曜日の会議はもう少し面白いです-Googleハングアウトを使用して話します。 私にとって個人的には、これは英語を話すことの難しい練習です。通常、出席者はどれもネイティブスピーカーではないため、間違いは許されます。 一部のアプリケーション機能の実装の微妙な問題、国際化の問題などについて説明します。 誰かリゼットが私たちと一緒に働いています。 とても素敵な女性(そう、それは女性で、もはや少女ではありませんでした。そのようなプロジェクトのデザイナーが若い人ではないことに初めて驚きました。後に彼女はUXで非常に経験豊富で精通した人であることが判明しました)、彼女は家にいて、すぐにコンセプトを開発しました「ショート」と呼ばれるデザイン-これが当社のRSSリーダーと呼ばれるものです。 現在、外部とその設計を一致させるために取り組んでいます。



コアアプリケーションの一般的な進捗


いくつかのアプリケーションがリードしているのも不思議ではありません。 これは電卓、天気、時計です。 繰り返しますが、それらは単純であると言うのは間違いですが、それらの作業は非常に並行しています。 他の人は遅れをとっています-最も悲しい状況は、私が知っている限りでは、今ではメールクライアントにあります。 そこで、チームはほぼ完全に再描画されます。 ドキュメントとターミナルは、独自の方法で開発されており、大きな進歩や放棄はありません。 最近まで、ファイルマネージャにはバグがたくさんありましたが、Hack Daysでそれを改善するための作業が進行中です。

12のアプリケーションのうち、4つがソーシャルとして選択されたことは注目に値します。 これらは、Facebook、Youtube、Twitter、およびRSSリーダーです。 現時点では、私たちのプロジェクトのみが生きています)残りは、企業の権利と不満に対する混乱のために停止されました。 聖地は決して空ではないので、彼らの場所には、私の個人的な意見では、数独ゲームのようなすでに「基本的ではない」新しいアプリケーションがあります。

8月には、すべてのプロジェクトにベータ版が含まれます。 9月リリース。 次にAlpha-2について。



Ubuntu Phoneプログラムの12のコアアプリケーションの一部としてRSSリーダー開発チームのメンバーは言った。

深夜の理由で記事で言及し忘れたすべての情報を共有する準備ができているので、質問してください!

UPD数日後、私は正確に答えられない蓄積された質問をCanonicalのいずれかに尋ね、その答えを投稿に追加します!



All Articles