1年前に問題がありました。 問題は、お気に入りのシリーズの新しいエピソードのリリースを見たり、トラッカーから.torrentファイルをダウンロードしたり、ジャンプさせたりするのにうんざりしていたことです。 どういうわけかこのビジネスを自動化したかった。
問題がある場合は、解決する必要があります。 私はObj-cでOS X開発の経験はありませんでしたが、試してみる時間と希望がありました。
理論を研究するのに2週間、プログラムを書くのにさらに1か月かかりました。 このプログラムはRuTracker.orgトラッカーでのみ機能し、非常にバグが多かった 。 最初はソースコードをGitHubに配置するつもりでしたが、結果のコードの品質を見て、考えを変えました。 私自身、このコードにはほとんど何も見つかりませんでした。 プログラムは同じRuTrackerにアップロードされ、多くの良いレビューを受けましたが、多くのバグとリクエストも受け取りました。 2つの中間リリースの後、すべてのバグを修正し、アプリケーショングラフィックスを変更し(RuTracker.orgフォーラムのolenyevに感謝)、いくつかの機能を追加しました。
経験不足から、私はたくさんの松葉杖を思いつき、多くの間違いを犯しました。
- ログイン/パスワードは通常のplistファイルに保存されており、いかなる方法でも保護されていません。
- コードの大部分はAppDelegateで正しかった。
- 更新システムは次のように機能しました。私のサイトで、実際のリリース番号が単純なテキストで書かれたページを作成しました。 プログラムは、この番号を実行中のプログラムのリリース番号と比較し、もしあれば、RuTracker.orgに切り替えてプログラムの最新バージョンをダウンロードすることを提案しました。
- 変数の名前はどこでも異なっています。
- 単一のコードスタイルはありません。
ほぼ一年間、私はこのプロジェクトとObjective-C一般には戻りませんでした。 Web開発のルーツを失い、プログラムを開発する時間はありませんでした。 そのため、このような便利なプログラムに感謝してくれた人に手紙を書いていなければ、何も変わらなかったでしょう。 それから彼は、New-Rutor.orgのサポートが可能かどうかを優しく尋ねました。
私自身、Kinozal.tvをサポートしたいとずっと思っていましたが、やる気がありませんでした。 安全な距離から長い棒でさえそのコードに触れたくありませんでしたが、感謝の手紙が人類に対する私の信仰を呼び覚まし、私はすべてをゼロから書き直すことにしました。
仕事をしなかった5日間は、このプロジェクトだけをやりました。 私はすべてを最初から正直に書き、古いコードを数回だけコピーアンドペーストしました。 Olenyevは新しいグラフィックを描き、GitHub Pagesにサイトを作りました。 バグをテストして修正するための別の月、そして私は自分の作品を世界に発表する準備ができています。
結果は次のとおりです。
- 理論的には、10.7-10.9をサポートします(実際には、ベータテスターがほとんどいないため、10.7-10.8はテストされませんでした)。
- すべてのトラッカー設定は.plistファイルにあります=>最短時間で新しいトラッカーを追加できます。
- 私の純粋に非専門的な(この分野での)ビューでは、コードは読み取り可能です。
- Sparkleフレームワークを使用してシステムを更新します。
- 通常、ログイン/パスワードはどこにも入力または保存されません。 Safariブラウザーのcookie jarによって使用されます。
さらにいくつかのスクリーンショット
ソースコードを世界に公開することを恥ずかしく思いません。GitHubでプロジェクトリポジトリを確認できます 。
このプログラムは、プロジェクトの公式ウェブサイトからダウンロードできます。