生産的な先延ばし:BlackBerryおよびTizenの開発





私はAndroidのファンではありません。 さらに、Javaの「ファンではない」。 したがって、iOS / Mac / Win8 / WPアプリケーションをAndroidに移植し終える作業に直面したとき、私はこの幸せな瞬間を遅らせるために何でもすることを好みました:英国のiOS開発者の地位にモスクワのインタビューに行きました(失敗しました)私の戦略ゲームの2枚のカードは順番が回っていません。映画「フレーム」(「インターンシップ」-それだけの価値がある)を見て、MacBookでステッカーを作り、...同じアプリケーションをBlackBerryとTizenに移植するために2週間に2回割り当てました。



ここで私の人生のこれらの4週間について、私はカットの下でお話しします。



PS。 急いでマイナスにしないでください、どこにも行かないし、Androidにアプリケーションを移植します...他のすべてのために移植した後...



「私はPR」ではなくこの投稿を投稿するリスクがあります。正直に言ってください。ロシアのBlackBerryについてはあまり理解しておらず、Tizenはまだまったく出ていません。 他のプラットフォームでは、私のアプリケーションはすでに必要なレベルに昇格されており、再びロシアはペニーです。 どちらかといえば、禁止しないでください、ただ延期してください...ありがとう。 アプリケーションに明示的に名前を付けるのではなく、注意深い読者がスクリーンショットでそれを見つけます。



すべてが自然に起こりました。 私はサンクトペテルブルクのMobileFest'13の一環としてハッカソンに行き、BlackBerryのロシア支部の長に会いました。 iOS / WP / W8 / Mac向けのアプリケーションについて話し、開発用にBBデバイスを入手できるかどうかを尋ねました。 1分後、デバイスは私と一緒にいました。



BlackBerry 10では、HTML5、Adobe Airを使用して記述し、Androidアプリケーションを再パックし、C ++でネイティブアプリケーションを記述できます。 まあ...私はこれらの技術を所有していません。 HTMLは私のものではなく、Airはコメントではありません; Javaについては上記を参照してください。 そこで、「直接」メソッドを選択します:C ++。 プラスに、私は1998年に研究所で実験室の仕事を最後に書いたので、Qtの本を買った(私はそれを決して開けなかった、私はそれを安く販売する)。



BlackBerry Developerポータルへの登録について書くことはあまりありません。 行って登録します。 お金を引き出すには、PayPalアカウントが表示されます(まだ支払いを受けていません。BlackBerryWorldストアに商品が入ってから1か月も経っていません)。



SDKがダウンロード、インストールされ、すぐに使用できます。 EclipseベースのIDEですが、非常にスマートに動作します。 VMWareイメージの形式のシミュレーター-完璧にロードして動作します。



BB Native SDKの一般的なドキュメントは適切なレベルにあり、すべてが説明されていますが、あまり詳細ではありませんが、どこを掘ればよいかは明確です。 レベルのクラス自体のドキュメントは次のとおりです。関数は結果を返し、timeパラメーターを取得します。つまり、時間を信じられないということです。しかし、これも重大な問題ではありません。 StackOverflowには、いくつかの質問に対する回答があります。残りについては、開発者フォーラムで回答を見つけるか、質問することができます。



私はQtが本当に好きでした。 SIGNAL-SLOTモデルを使用すると、デリゲートを作成せずに「余分な」クラス(インターフェイス、デリゲートなど)を作成することなく実行できます。 「短い」コードが大好きで、サブクラスビルダーのコンセプトが気に入りました。 bilderクラスはそれ自体を返しますが、オブジェクトのほとんどのプロパティのセッターメソッドがあります。たとえば:

ScaleTransition * transition1 = ScaleTransition :: create(noteView).fromX(1).toX(0).fromY(1).toY(0).duration(300).autoDeleted(true);



QLM? QMLなし、ハードコアのみ。 私は記述的なインターフェース言語が好きではなく、非ネイティブ言語のスクリプトが散在しているのがさらに好きです。 さらに、コードからのみインターフェイスオブジェクトを操作することは、開発の初期段階でフレームワークのイデオロギーを深く掘り下げるのに大いに役立つと信じています(はい、XIBとiOS用StoryBoardも私の選択ではありません...)



それ自体では、BlackBerry Cascades(GUIフレームワーク)は非常にスリムです。 すべての必要なコンポーネント、プロパティ、アニメーションなどがあります。 標準インターフェースから2、3歩進んだとしても、問題はありません。 ジェスチャハンドラーは非常に機能し、すべてが非常にすばやく描画され、リソースが即座に読み込まれます。



どんな「機能」に遭遇しましたか:

1)コントロールが特定の角度だけ回転した場合、テープはコントロール内ではなく、バウンディングボックス内で処理されます(変換方法がわかりません)。 そのため、たとえば座標[10、-20]で簡単にタップを取得できます。 手動で処理する必要がありました。

2)グラフィックボタンの押された状態の画像を設定する必要があります(私の場合、非常に多くのボタン->アプリケーションのサイズが大きくなっています)。そのため、押すと画像の上に暗い画像が表示される透明なボタンで「外出」する必要がありました。 たとえば、Cocoa Touch(iOS)は、指定されていない場合、押された状態の画像自体を暗くします。

3)Unicodeサポートに問題があります。 たとえば、「☐☒」という文字は「aa = a /」のように表示されますが、私はそれを理解していませんでしたが、写真を通して理解しました(私の場合、これはさらに適切なソリューションです)。

4)システムには、4つのスタイル(Normal、Italic、Bold、Bold Italic)の1つのフォントと、他の人が使用できない泥だらけの記述がありますが、そこにあるようです。 将来のバージョンへのカスタムフォントの遅延。



計画どおり、開発の11日目に、製品の準備が整い、確認のためにBlackBerry Worldストアに送信されました。 ここであなたはアップルではありません。 1日未満、そして「私たちの鍵」。 ストアの管理パネルに関する注意事項:最大10個のキーワード、任意の言語の説明、ただしスクリーンショットは英語のみです(6言語で8個のスクリーンショットを作成したときにこれについて学びました)。



ネイティブフレームワークを使用してアプリケーションを作成している場合は、「Built for BlackBerry」バッジのアプリケーションへの割り当てを確実に申請できます。 このようなアプリケーションは、ストアで別のグループ、Built For BlackBerryに表示されます(一般的なダンプに加えて)。 「知識のある人」は、ユーザーはネイティブアプリケーションを購入する可能性が高いと主張しています。 実際には、以下の販売スケジュールによって証明されているもの。 少なくとも一部の販売は、バッジをくれた10月12日に始まりました。 バッジを取得するには、プライバシーポリシーが必要です(製品ではなく、会社のプロファイルにあります。これは、製品で6言語でPPを作成したときにも学びました)。





10月27日の出来事-わかりません。 しかし、私は喜んでいます。



気持が良いから:店の検閲のチームはすぐに働き、助けたいと思って質問に適切に答えます。 彼らは、BlackBerryの顧客向けの月刊ワールドワイドニュースレターに製品を含めることを約束しました(これまでのところ、彼らは何も受け取っていません)。



ユーザーとしてのBB 10プラットフォーム自体は、本当に気に入っています。 細身、軽快、ホームボタンなし(物理的でも仮想的でもない)。 BlackBerry Q10(物理キーボードを備えたもの)を購入したかったのですが、今のところは延期することにしました。



BlackBerryのロシア支部長であるAndrei Kiselevが、プログラムの前後のすべての段階でサポートしてくれたことに感謝します。 テスト用の電話を「ブリック」すると、翌日に2番目の電話が宅配便で送られてきました。






そのため、BlackBerryバージョンが店頭にあり、Androidはまだ使いたがりません。そして、Tizenが助けに来ます!



BBの開発と比較して、Tizenの開発は苦労しています。 しかし...素晴らしい戦い。 Tizen SDK 2.2の現在のバージョンはまだ完全とはほど遠いですが、...順番にすべてについて。



HabrのSamsungとIntelの代表者のおかげで、私はSamsungのロシア部門に行きました。そこでは、10月23日にモスクワに来てそこでテストデバイスを入手するように最初にアドバイスされました。 幸いなことに、私は23日までにすでにアプリケーションを提供していたはずの絶対に適切で友好的なマネージャーを納得させることができました。 6日後、すべての紙の手続きを完了した後、テスト装置は私と一緒になったことが判明しました。



開発者の登録も説明する意味がありません。 SDKもダウンロード、インストールされ、すぐに使用できます。 IDEもEclipseに基づいていますが、めちゃくちゃブレーキがかかっています(MacBook i7、8GB、SSDがあります。同じEclipseにあるBB IDEにハエがあります)。 QEMUベースのエミュレータ。 これらの文字の意味がわかりません。SSEE-Super Slow Emulator Everと呼びます(ハードウェアアクセラレーションに関するチェックが見つからなかったか、オンにできませんでした)。 テストデバイスなしでは方法はありません。



C ++またはHTML5で記述できます。 私の選択はあなたには明らかだと思います... HIGを読み、フレームワークの構造に慣れてから、作業に取り掛かります。 そして退屈はすぐに私たちを去ります...



私が最初に出くわしたのは、ImageViewコンポーネントの欠如です。 ボタンは、ラベルは、パネルは、スライダーは、TextAreaは...すべてです。 しかし、ImageViewはそうではありません。 ただし、泣かないで書く必要があります。状況に応じて、ImageViewの独自の実装(AspectRatioとInterpolationQualityを使用)または... 誰かがそれを必要とするなら、私はコンポーネントを共有できます。



さらに、JPEGファイル(強力な圧縮を使用)は正しく読み取られません。Tizenはバグを確認し、明示的な形式を示すメソッドを一時的に使用することを推奨します。 その時までに、私は彼がまったく必要ないことに本当に気づきました...

  Tizen ::アプリ::アプリケーション:: GetInstance()-> GetAppResource()->
 GetBitmapN(resourceName、BITMAP_PIXEL_FORMAT_ARGB8888)。 


Labelコンポーネントは、右マージンを設定するためのプロパティを作成するのを忘れており、20ピクセルのオーダーであり、何も実行できません。 ただし、EditAreaは右フィールドを忘れただけでなく、20 px未満の値では左フィールドの設定も機能しません。 レイアウトを解決する必要があります。 FontStyleプロパティ(Normal、Bold、Italic)を作成するためにEditAreaを忘れたことについては既に沈黙しています。これを回避することはできません。



また、ネイティブアプリケーションをポートレートモード「人間」でのみ動作するように設定する方法も明確ではありません。フォームとフレームをTizen :: Ui :: IOrientationEventListenerとして可能な限り登録し、それを既に想起させる必要があります。



ジェスチャーハンドラーはうんざりします。 たとえば、PinchGestureRecognizerは、2本の指の向きがSW-NE(南西-北東)の場合は完全に動作しますが、逆の場合はコンポーネントが容赦なくソーセージになります。 ハンドラーと低レベルのタップハンドラーを混在させることはできませんでした。 その結果、すべての処理はタパスのみで行われます(iOS 3.2以前の古き良き時代のように)。



そして、コントロールの回転はどこにありますか? しかし、彼はそうではありません。 iOSのような.transformも、BlackBerryのような.RotationZも、Win8のような.RenderTransformもありません。 しかし、RotationAnimationがあります! しかし、それは...回転アニメーションの最終的な角度は0度の値にしかなれない...貴重です。 しかし、ここではごまかすことができます。 必要な初期回転角度を設定し、最終角度を0にし、期間を2147483647(約21日間)に設定すると、目的の結果を得ることができます(定期的にタイマーを調整します)。

  GetControlAnimator()-> StopAllAnimations(); 
 GetControlAnimator()-> StartUserAnimation(ANIMATION_TARGET_ROTATION、 
 RotateAnimation(_note-> GetAngle()、0、2147483647、ANIMATION_INTERPOLATOR_DISCRETE)); 


Scene Manager(ワークフロー)の可用性に非常に満足しています。 これはiOS StoryBoardのようなものですが、はるかに簡単です。 ダイアグラムの形式では、遷移アニメーションのフォームとパラメーターが設定され、フォームファクトリーとパネルファクトリー(該当する場合)が書き込まれ(塗りつぶされ)、シーン間のすべての遷移が文字通り1行のコードで実行されます。 私はそれに同意します。



Tizen Storeは、アプリケーションの受信にのみ使用できます。手順も注意に値しません。 パッケージを作成し、説明を書き、スクリーンショットを投稿し、アイコンを作成し、...承認されたその日のうちに。 本当に気が動いたのは、丸いアイコンが必要だということです。 これ...これ...まあ、なんとなく人間ではない。 私は3つの円から素晴らしいアイコンを描きましたが、うまくいかないと確信しました。







有料アプリケーションを公開するには、追加のアプリケーションを送信する必要があります(これはまったく関係ありません)が、私は1日でこの手順を実行しました。 PayPalをバインドするか、銀行口座(USD)を使用できます。 私は銀行に行き、口座の利用可能性について美しい紙を取り、私のパスポートのコピーと一緒に、それをウェブサイトのフォームにアップロードしました。 事前に聞かせてください。



私がTizenに参加した他の理由のために-これは、Tizenアプリチャレンジ(http://tizenappchallenge.com/)への参加であり、賞金は4,040,000ドルです。変更される可能性があります(申し込みは11月1日まで受け付けられます)。 そして、おそらく、開店当日に店頭に並ぶ予定のアプリケーションが成功する可能性が高くなることを期待しています(これは、最初のiPadの準備が整ったiOSバージョンの場合です)。



奇妙なことに、アプリケーションを移植した6つのプラットフォームすべてのうち、おそらく最も興味深いのはTizenでした。 新たな感覚の面では、私にはわからない…新鮮さ? SDKは完成し、より調和のとれた外観になります。 過ごした12日間について後悔はありません。



テストデバイス上のTizen OS自体はあまり印象的ではありません。 いいえ、彼女は大丈夫ですが、彼女の一部は終了していません。 しかし、彼女は未完成です。 公式リリースは来年初めに予定されており、私が聞いたように、インターフェースは開発の終わりに残されています。



サムスンとインテルの代表者、エカテリーナフィレンコ、レナトニャズヘメトディノフ、キリルチュビリン、キリルダニロフに、デバイスの開発、受け取り、10月23日のモスクワでの優れたマスタークラスの支援、そして積極的な態度と参加に感謝します。



そして、ここに1ヶ月の仕事の結果があります:





今ではAndroidの時間です...しかし...おそらくFireFox OSですか? 彼らはそこでどうしていますか?



私はすぐに質問に答えます(このアプリケーションに関する以前の投稿で尋ねられました):

1)はい、本当にすべての12暦日。 また、アーキテクチャについては2週間、開発については1か月、QAについては1か月、プリプロダクションについては1週間ほど教えてください。 これは多くの「法人」です。

2)いいえ、これは時間の無駄ではありません。 これは良い経験であり、新しい知り合いであり、一般的には、今後数年間の売り上げ-かなりの収入(2週間以上の仕事)です。

3)BlackBerryでは、同じアプリケーションでWin8 + WPを使用するよりも多くの機能を利用できるようになりました(ただし、これはMSガーデンにとってはマイナスです)。 そして、私はiOSのために住んでいます。

4)アプリケーションを誰が、なぜ購入するのかわかりません。 しかし、誰かと何らかの理由で購入します。 それは素晴らしいことです。



私はできる限り質問に答える準備ができています-お手伝いします。



参照:

BlackBerry開発者ポータル: developer.blackberry.com

Tizen開発者ポータル: developer.tizen.org

BlackBerry World: appworld.blackberry.com



ありがとう



All Articles