アイアンマンになりたい

アイアンマンになりたい

35歳、2児の父。将来の夢「アイアンマン」

【Backlog×Todoist】Backlogで自分の担当のタスクをTodoistと連携する方法

サービス終了がアナウンスされているWunderlistからTodoistへ移行したのをきっかけに、タスク管理に取り組んでいます。

applewatchjournal.net

まずは、複数個所に分散しているタスクをTodoistに集約できるように、Todoistと他サービスの連携を進めているところ。
今回はプロジェクト管理ツールのBacklogとの連携を設定します。

www.backlog.jp

Backlogで自分の担当のタスクをTodoistと連携する方法

BacklogとTodoistは直接連携する機能がないので、他のツールを使って連携を進める必要があります。
今回の手順を簡単に説明すると、以下の通り。

  1. Backlogのカレンダー連携機能でMacのカレンダーと連携する

  2. iCloud連携でMacのカレンダーとiPhoneのカレンダーを連携する

  3. IFTTTを使って、iPhoneのカレンダーとTodoistを連携する

iPhoneMacをフルに使っているAppleユーザー向けの設定です。
Googleカレンダーとの連携も可能ですが、IFTTTはGoogleカレンダーの外部カレンダーをレシピに組み込むことができないので、Zapierという自動化ツールを利用する必要があります。
IFTTT、Workflowと比べるとややマイナーなツールで、使い倒すには有料版にする必要がありますが、複数のトリガーを組み合わせた複雑なレシピが作れるなどかなり強力なツールです。ただ私の環境だとMac&iPhone&IFTTTで簡単にレシピを構成できるのでZapierを紹介するのはまたの機会に…。

Backlogのカレンダー連携機能で、自分の担当タスクをMacのカレンダーに連携する

まずは、Backlogのダッシュボードから自分の担当課題カレンダーの取り込みダイアログを開くためのカレンダーアイコンをクリックします。
f:id:ultimate-ez:20170604225957j:plain

ダイアログが開き、カレンダー取り込みのためのURLが表示されますが、そのURLは一旦無視して、その下にあるAppleiCalへの取り込みはここをクリックします。」のリンクをクリックします。
f:id:ultimate-ez:20170604230340j:plain

「このページで"カレンダー"を開くことを許可しますか?」というダイアログが立ち上がるので許可をクリックします。
f:id:ultimate-ez:20170604231026j:plain

カレンダーアプリが立ち上がり、照会したいカレンダーのURLの確認ダイアログが表示されるので、そのまま「照会」をクリック。
f:id:ultimate-ez:20170604231742j:plain

カレンダーの取り込み設定を行います。
iPhoneカレンダーとの連携があるので必ず場所をiCloudに設定しましょう。
連携をなるべく早く行いたい場合は、自動更新の時間をなるべく短く設定しておくと良いと思います。
f:id:ultimate-ez:20170604231849j:plain

これで、Backlogで自分の担当になったタスクがMacのカレンダーに自動連携されるようになりました。

iCloud連携でMacのカレンダーとiPhoneのカレンダーを連携する

これはカレンダーの取り込み時に場所をiCloudに設定しておけば自動で連携が進みます。
タイミングによっては連携がなかなか即時反映されないこともありますが、このあたりはあまり焦らず気長に待つほか無さそうです。 iCloud連携を一旦オフにして再設定する、iPhoneを再起動するなど、強制的にiCloud連携の読み込みを促す方法ありますが、自動運用したいところなのでここは焦らずに自然に任せるのが良いと思います。)

IFTTTを使って、iPhoneのカレンダーとTodoistを連携する

最後はIFTTTを使ってiOSのカレンダーの情報をTodoistに連携します。 レシピは以下から。

ifttt.com

レシピの設定で気をつけたいのは、まず取り込むカレンダーの名前。
IFTTTの設定からNew event added to specific calendarのセクションで、Backlogのカレンダーを取り込んだカレンダーを指定しましょう。
f:id:ultimate-ez:20170604234026j:plain

続いてTodoist側の設定ですが、取り込むプロジェクトを設定します。
タスク名はBacklog側のタイトルだけを取り込むように指定し、期日(Due Date)はStartDateを指定すると良いです。
("カレンダー"アプリ取り込み時に、Backlogの期限日にスケジュールが設定されるため、StartDateが期限日、EndDateが期限日の23:59となるため、EndDateを指定するよりもStartDateを指定した方が良さそうです。)
またNoteにはURLNoteを指定します。これでTodoist上のノートにBacklogの本文がコピーされると同時に、Backlogの対象チケットへのURLリンクも貼られるので便利です。
最後にPriority(優先度)ですが、これは「優先度なし」を指定できないため、適切な優先度を設定しておいてください。 f:id:ultimate-ez:20170604234350j:plain

私の場合は基本的にタスクは一旦すべてInBoxに届くように指定しています。
InBoxで一度精査するので、優先度も適当でかまわないと思います。

実際にどういう風にタスクが追加されるの?

連携が終ったので早速Backlogで新たに自分が担当になるタスクを作成してみます。 チケットの詳細にはBacklog上の文法で引用やソースコード、リストなどを記述しています。 f:id:ultimate-ez:20170604235131j:plain

BacklogからMacへの連携→MacからiPhoneへの連携→IFTTTを使ってiPhoneからTodoistへの連携と処理が複雑な分、反映には少々時間がかかりますが、以下のようにTodoist上にタスクが作られます。

f:id:ultimate-ez:20170604235539j:plain タイトル、期日、チケットの詳細が反映されています。
チケットの詳細は文字の装飾等は引き継がれずすべてプレーンなテキストとして入ります。ただURLだけはちゃんとリンクとして機能する状態で反映されるのが嬉しい!
冒頭のURLはBacklogの該当チケットへのリンクです。Todoist側での表示は自分のアカウントのログインページに見えますが、ちゃんと該当ページへのリンクなのであんしんしてください。


以上、Backlogで自分の担当のタスクをTodoistと連携する方法でした。
最初の設定はちょっと大変ですが、一度設定してしまえばあとは自動で連携するので手間はかかりません。
Backlog上にもタスクが分散して管理が大変な人は、この方法でTodoistでの一元管理を実現してみてはいかがでしょうか!

AppleWatchの文字盤に和暦を表示するアプリ「和暦Watch」のバージョン1.3をリリースしました。

f:id:ultimate-ez:20170603070639j:plain 毎日コーディング生活の一貫として、Apple Watchの文字盤の情報表示エリア(コンプリケーション)に和暦を表示するアプリ「和暦Watch」のアップデートを行いました。

和暦Watchを App Store で

アップデートの内容は、前バージョンで追加した「曜日」「干支」の表示/非表示の切り替え機能の更新処理の効率化と、日付が表示される文字盤(モジュラー、ユーティリティ)での日付更新処理の効率化です。

個人でアプリを作る時に意識している2つのこと

個人でアプリを作るうえで絶対のルールとして自分に課していることが2つあります。

1つは自分自身がそのアプリの一番のユーザーであること
アプリをリリースした後も、自分がヘビーユーザーとして使っていくことで、不具合の発見や欲しい追加機能を考えやすくなるので、自分が使わないアプリは作らないようにしています。

「和暦Watch」も、私自身がよく「あれ、いま平成何年だっけ?」と悩むことが多かったので文字盤に「平成○年」と表示するだけのアプリを作ろうと開発しました。

もう1つは今まで使ったことのない技術や知識を必ず1つは使うこと
仕事としてアプリ開発をするのであれば、確実に機能が実現できる「知っていること」「出来ること」を組み合わせてアプリを作るべきだと思いますが、逆に個人の場合は「今は知らないこと」「今はできないこと」を使いたいと思っています。
そうやっていけば自然と「知っていること」「出来ること」が増えていき、アプリ開発者としてのスキルが上がっていくはずです。「知っていること」「出来ること」が増えるので仕事としてやれることの幅も広がっていくわけです。

「今は知らないこと」「今はできないこと」を使ってアプリを作ると大変なことが多いけど…

「和暦Watch」の場合は、Apple Watchアプリ自体はすでにいくつか作ったことがありましたが、「コンプリケーション」に対応したアプリが初めての経験でした。
今回のアップデートはバージョン1.3ですが、1.0では「iPhoneの設定からコンプリケーションが設定できない」という問題、1.1では「曜日・干支の表示設定が反映されない」、1.2では「日付が更新されない」と数々の不具合が…。
コンプリケーションは通常のアプリとは違う独自の設定やテクニックが必要だったんですが、それがわからずになかなかまともな完成度のアプリが作れずに苦労しました。
(実際、「素人さんが作ったアプリなのかな」というコメントの☆1レビューがついたりして、心が折れかかりました…。)

でも、そうやってアプリの作り方のマズい点を不具合として報告してもらえるというのは、アプリ開発のスキルを上げるためにはかなり貴重な経験。
ストアへの公開を積極的にやったからこそ得られたものでもあるわけです。

ユーザーさんから上がってきた不具合を潰すというのは、突貫で技術力を上げ、アプリに関する理解度も上げる必要があるので、成長スピードは格段に早くなります。

「いつかアプリをストアで公開したい!」と思っている人は、完成度が低くてもいいのですぐにストアに公開した方がいいと思いますよ!

というわけで、これからも「今はしらないこと」「今はできないこと」を「知っていること」「出来ること」に変えながらアプリ開発とストアへの公開を続けていこうと思います!

松井証券の「投信工房」で毎日500円積立の記録― 1ヶ月目(2017年5月)の記録

松井証券のロボアドバイザー「投信工房」で、毎日500円積立を実行中です。

ironman.hatenadiary.com

5月10日に積立をスタートしたのでまだ20日ほどですが、毎月1日に1ヶ月の実績を記録していこうと思います。

上記の記事にも書きましたが、基本的にロボアドバイザーの提案したポートフォーリオをそのまま運用するという方針でやっているので、自分でポートフォーリオをカスタマイズしたり、ちょこちょことリバランスしたりせずに放置プレイで運用しています。
その結果、資産がどういう推移をしていくか?
「投信工房」のロボアドバイザーの精度が気になる人は是非参考にしていただければと思います!

5月31日時点のポートフォーリオ

f:id:ultimate-ez:20170601073627j:plain

5月10日に積立をスタートして、毎営業日に500円積立が行われています。
5月31日現在では12回の買い付けで6000円分が積み立てられています。

500円が最低買い付け単価ということで、ポートフォーリオの比率に近づくように500円づつ各銘柄が購入されています。
目標比率が一番大きい「先進国債券(37%)」をまずは買い付け、次に2番めに多い「先進国株式(13%)」と順番に買い付けが行われ、5月31日時点では目標の9銘柄のうち5銘柄まで保有出来ています。
目標比率が5%の銘柄「新興国債権」「国内リート」「海外リート」「コモディティ」の4つはまだ積立が出来ていません。
やはり500円の積立だと、なかなか目標のポートフォーリオが実現しませんね…。

評価損益は28円のプラス。
正直1ヶ月目なのでどうということもないですが、年率に換算したパフォーマンス実績は5.7%ということでまずまずの運用ができているようです。

わかっていたことですが「債権」はリターンが少ないのでもう少しリスク上げてもリターンに期待できるバランスにしたいなーという気持ちも湧いてきますが、放置プレイでの運用が目的なので、6月もロボアドバイザーのアドバイスそのままの現在のポートフォーリオで積立を続けていこうと思います。

「投信工房」で毎日500円積立1ヶ月目の資産記録

  • 資産総額:6,028円
  • 積立額:6,000円
  • 評価損益:28円
  • 損益率:+0.47%

Apple Developer Programメンバーシップ剥奪の危機!?原因はついやってしまいがちなアレでした…。

ソフトもハードもイケるスーパーエンジニアであるアイアンマン(=トニー・スターク)を目指すべく、毎日コーディング生活を続けている私ですが、実は早速危機に直面していました。

ironman.hatenadiary.com

コーディングの中心はiPhoneやAppleWatch向けのアプリの開発。
新しいアプリのリリース+過去に作ったアプリのアップデートを並行で進めていて、今月半ばには早速アプリのアップデートを実施しました。

ironman.hatenadiary.com

続けてまた別のAppleWatch向けアプリのアップデートを行おうとAppStoreへの申請をしたまでは良かったんですが、審査の結果アプリはリジェクト…。
アプリがリジェクトされること自体はよくあるのですが、今回はなんとも恐ろしい文章が添えられていました。。。

AppStoreへ申請したアプリがリジェクト!?何やら"不正”を疑われているらしい

Appleから送付されたメッセージはこんな文章。

We have determined that your Apple Developer Program membership, or another membership associated with your developer account, has been used for dishonest or fraudulent activity. This is prohibited by Section 3.2(f) of the Apple Developer Program License Agreement:

あなたのアカウント(Apple Developer Programメンバーシップ、または開発者アカウントに紐付いたメンバーシップ)は不正(dishonest)または詐欺(fraudulent)の活動に利用されています。これはApple Developer Program License Agreementのセクション3.2(f)で禁止されています。

As a result of this activity, you are no longer able to submit updates.

不正により、あなたはアプリのアップデートを登録することはできません。

Continuing to engage in dishonest or fraudulent acts may result in the removal of your apps from the App Store and termination of your Apple Developer Program membership and all associated memberships.

不正が続く場合、あなたのアプリはAppStoreから削除され、Apple Developer Programメンバーシップおよび全ての関連するメンバーシップは停止されます。

怖ッ!!

不正なんてやった覚えがない私は脊髄反射で、「I have no idea about “dishonest or fraudulent activity”.(不正または詐欺行為なんて身に覚えがないんですけどォ〜)」「Can you tell me more specifically what is the problem?(何が問題がもうちょいちゃんと教えて!)」と、雑に返信してしまいました。

Apple Developer Program License Agreementの指定箇所を読んでみると、…見に覚えありました…。

とは言え、メンバーシップ剥奪と結構強いアクションが匂わされていたので、気になって他のことが手につきません。
メッセージで引用されていたApple Developer Program License Agreementのセクション3.2(f)の内容をもう一度確認してみると、、、

“You will not, directly or indirectly, commit any act intended to interfere with the Apple Software or Services, the intent of this Agreement, or Apple’s business practices including, but not limited to, taking actions that may hinder the performance or intended use of the App Store, B2B Program, or the Program.”

要するに、Appleのソフトウェアやサービスを妨害する行為はダメってこと。
やはり全く見に覚えがありません。

ということで、Apple Developer Program License Agreementの現物をチェックしてみます。

http://adcdownload.apple.com/Documentation/License_Agreements__Apple_Developer_Program/Apple_Developer_Program_License_Agreement_20170227.pdf

(f) You will not, directly or indirectly, commit any act intended to interfere with the Apple Software or Services, the intent of this Agreement, or Apple’s business practices including, but not limited to, taking actions that may hinder the performance or intended use of the App Store, B2B Program, or the Program (e.g., submitting fraudulent reviews of Your own Application or any third party application, choosing a name for Your Application that is substantially similar to the name of a third party application in order to create consumer confusion, or squatting on application names to prevent legitimate third party use);

内容はメッセージで引用されていたものと同じですが、(e.g.,以降に具体例が。

submitting fraudulent reviews of Your own Application or any third party application,

あなた自身のアプリ、または第三者のアプリに不正なレビューを提出する。

あ…。

はい。私先日リリースした「DJ Beats」っていうアプリに自作自演レビュー(☆5)してました。
これがNG行為だったようです…。
おぉ…これは完全に私に非があるパターン…。

Apple様へ秒速で謝罪。そして無事にお許しをいただきました。

秒速でApple様への返信を書きました。。

「I’m very very sorry, I understood my dishonest activity.(ほんとにほんとにごめんなさい。自分の不正行為を理解しました。」
「I submitted a review comment for my own app.I already deleted the review comment.(自分のアプリにレビュー書きました。でももう消しました。)」
「Can I submit my apps again?(もう一回アプリ申請してもいいですか?)」
と、手の平クルーで。

Apple様からは約24時間後に「お前が言ってることはわかった。お前の全アプリで不正がないか調査するから待ってろ」との返信が。
そして、さらにそこから6日後「レビューをしてやろう」とのメッセージが届き、リジェクトされていたアプリは「レビュー待ち」のステータスへ。

さらに2日後にレビューは無事に完了!
アップデートをAppStoreへリリースすることができました。

良かった。。。

というわけで、AppStoreにアプリを載せている皆さん、自作自演レビューはApple Developer Programメンバーシップ剥奪の恐れすらある重大な罪
今回は悪意が無いと判断してもらえたのか、特にペナルティーはなくアプリの申請ができるようになりましたが、なんだかんだで10日間以上のタイムロスにはなっています。
自作自演レビューは絶対にやっちゃいけないよ!というのは是非覚えておきましょう!

それにしても、いやー、いい勉強になりました…。

Githubで自分にアサインされたIssueをTodoistに追加する方法

今まで使っていたタスク管理サービス「Wunderlist」がいよいよサービス終了に向かっているということで、代替のサービスをいろいろと検討した結果「Todoist」というサービスを使うことにしました。

参考↓ applewatchjournal.net

そして、これを機に「タスク管理」を徹底的に極めて、超生産的な人間になろうと思っています!

そのために「Todoist」にタスクが集約される仕組みづくりからはじめます。
まずはGitHubで自分にアサインされたIssueをTodoistにタスクとして追加することにしました。

GitHubのアカウントを有料プランに変更!毎日コーディング生活を始めます! - アイアンマンになりたい

GitHubで自分にアサインされたIssueをTodoistに追加する手順

連携に使うのはIFTTTというサービス。 複数のWebサービスを連携させるサービスで、例えばブログが更新されたら自動的にTwitterFacebookに投稿するといった使い方をしている人も多いと思います。
ifttt.com

GitHub、TodoistともにIFTTTとの連携ができるサービスなので、あとはこのサービスを接続するだけ。
しかも、基本的な連携のレシピはすでに用意されています。
ifttt.com

この画面からGitHub Issues assigned to me Todoist(自分にアサインされたIssueをTodoistのタスクにする)」をクリック。
f:id:ultimate-ez:20170527073214j:plain

レシピが表示されるので「Turn On」をクリックして連携を開始します。
GitHub、Todoistの両サービスでアカウントの認証が必要)
f:id:ultimate-ez:20170527074006j:plain

設定(Configure)画面から、Todoistのどのプロジェクトにタスクを追加するかを選択して「Save」を押せば連携完了です。
(私はとりあえずInboxにタスクを追加することにしました。GitHub専用のプロジェクトを用意するのもいいかもしれませんが、まずは全てのタスクがInboxに入って、それをマニュアルで振り分けるというフローにしてみました。)
f:id:ultimate-ez:20170527075142j:plain

ちなみに用意されているタスクは他に以下のものがあります。
* プルリクエストをTodoistのタスクにする(GitHub Pull Request to Todoist Task)
* GitHubのIssue(自分にアサインされたもの以外も含む)をTodoistのタスクにする(GitHub issue to Todoist)

実際にどういう風にタスクが追加されるの?

連携が完了したので、テストを兼ねてIssueを発行してみましょう。

とりあえず、こんな感じでIssueを作ってみました。
本文には参考サイトのURLを貼り付け、自分にアサインしています。 f:id:ultimate-ez:20170527075640j:plain

「Submit new Issue」を押すとIssueが発行されますが、Todoistとの連携はIFTTTというサービスが発動するまで少し時間がかかります。
即時連携というよりはいつの間にか自動的に連携しているくらいの気持ちでいたほうがよいと思います。

IFTTTが発動すると以下のようにTodoistにタスクが追加されます。
項目の横のlinkGitHubの対象ページのリンクになっているので便利ですね。 f:id:ultimate-ez:20170527080031j:plain

Issueの本文はメモの形でインポートされます。 ただしURLがリンクとして機能するのは1つだけ、複数のリンクを記載していても、最初の1つ以外は単なるテキストとして保存されます。
f:id:ultimate-ez:20170527080529j:plain
▲メモの一番下にある画像(「10」の数字の画像)がリンクになっています。

以上、Githubで自分にアサインされたIssueをTodoistに追加する方法でした。
Todoistで自分の抱えているタスクを一括で管理したいという人は是非参考にしてみてください!

松井証券の「投信工房」で毎日500円積立の記録#1 500円積立だとポートフォーリオに近づくのに結構時間がかかりそう…

松井証券のロボアドバイザー「投信工房」で、毎日500円積立を実行中です。

ironman.hatenadiary.com

上記の記事のとおり5月10日に積立をスタートしましたが、投信工房の積立は毎営業日なので、今日までに7回=3,500円分の積立が行われています。
※正式には毎営業日に積立資金の500円がストックされ、その後に実際の買い付けが走るという動きのため、現在投資済み2,500円+現金資産1,000円という内訳になっています。

1銘柄の買い付け最小額は500円!少しづつポートフォーリオに近づくように投資が進みます

ポートフォーリオを組んで投資を進めていますが、今のところ実際の投資結果と目標ポートフォーリオには大きな乖離があります。

というのも、投信工房では1銘柄の買い付け最小額が500円。
初日の投資額である500円が、ポートフォーリオを構成する各銘柄に振り分けられるのではなく、一番比率が多い銘柄1つだけが500円分購入されます。
f:id:ultimate-ez:20170521230158j:plain
▲買い付け初日の管理画面。目標で最大比率の銘柄「先進国債券」に500円の全額が振り分けられている。

その翌日も同様に買い付けが入るのは1銘柄。
毎日1銘柄づつ買い付けが行われ、少しづつポートフォーリオに近づいていくようです。
f:id:ultimate-ez:20170521230611j:plain
▲4日目の管理画面。3日連続で「先進国債券」が購入され、ようやく2番めの比率の「先進国株式」が購入されました。ちなみに評価額は1円ですがマイナス!!いや、もちろんこの時点での損益には全く意味がないんでいいんですけど…

私のポートフォーリオは細かく9銘柄に分かれているので、まだすべての銘柄がかいつけられてすらいません。。
f:id:ultimate-ez:20170521230457j:plain
▲本日時点の管理画面。ようやく3種目の銘柄「国内株式」の買い付けへ!一番比率が小さい銘柄は5%(=1/20)なので、とりあえず20回の買い付けで一通り全銘柄が揃うのかな…?

もちろん、銘柄を絞ればポートフォーリオに近づくペースは早まると思いますが、今回はロボアドバイザーの提案に完全乗っかり投資がコンセプトなので、時間はかかってもこのまま進めたいと思います。
理想のバランスに落ち着くまでに一体どのくらい時間がかかるのか…?これもまた、実験です。

というわけで松井証券のロボアドバイザー「投信工房」で毎日500円積立の記録第1回はこんな感じ。
基本的に放置の投資なのでそんなにネタも無いかもしれませんが、今後も2週間〜1ヶ月のペースで記録を共有していこうと思います!
投信工房に興味のある投資初心者の方の参考になれば幸いです!

即興フリースタイルラップの練習アプリ「DJ Beats」のバージョン1.2をリリースしました。

f:id:ultimate-ez:20170513000325j:plain

毎日コーディング生活の最初の成果として、約1年くらい前に作ったアプリ「DJ Beats」のアップデートを行いました。
即興フリースタイルラップの練習アプリという超ニッチなアプリです。

DJ Beatsを App Store で

アプリの制作時間は約30分。こういうアプリを量産していきたい!

「DJ Beats」は、約1年前に世間で「フリースタイルダンジョン」が流行っていたことに乗っかって作ったアプリです。
アイコンのデザインやAutoLayoutでの画面制作にはちょっと苦労したものの、機能自体はサクッと30分くらいで作りました。

再生するトラック(インストの音楽)は、Youtubeにアップされているものを集めたもの。Youtubeの動画IDをリストとして持っており、リストの中からランダムに1曲が再生されます。
Youtubeの制御はライブラリが公開されているので、基本的にはライブラリが用意しているメソッドをコールするだけ。
時間がかかったことと言えば、広告の表示の部分と、動画IDのリストをJSON形式で自前のサーバーに置くようにしたことくらいです。(リストを外部ファイルにしたのは、動画の追加・削除の際にアプリのアップデートが必要なく、すぐに編集することができるように。)

今回のアップデートは、約1年の間にいくつかアプリレビューとして投稿いただいた要望の中から、ビートを巻き戻すという機能を追加しました。
これもライブラリのメソッドをコールするだけなので、サクッと実装できました。

30分で作ったアプリでもちょっとくらいなら稼ぐことはできる!

DJ Beatsは1年くらいほったらかしにしていたアプリですが、無料アプリということもあり日々少しづつインストールされ、アプリ下部に固定しているバナー広告からの収益が月に5,000円くらいあります。
副業アフィリエイトと考えるとかなり少ない額ですが、30分で作ってあとは放置ということを考えれば、この5,000円はほぼ完全なる不労所得。こういうアプリを量産できれば、運用の労力は増えずに、少しづつ毎月の収入が増えていくことになります。

素敵!

仕事の片手間でアプリを作るわけなので、今後も狙うべきはこういうアプリ、こういう戦略だと思っています。

目指すは初代iPod Shuffleみたいなアプリ

f:id:ultimate-ez:20170513003845j:plain

Appleが2005年に発表した初代iPod shuffleはかなりインパクトのある製品でした。
当時大人気だったiPodの機能を大幅に減らし、画面すらなく、基本的に端末内の楽曲をシャッフル再生するだけという、極限まで機能を減らしたiPod"でした。
ここまで引き算を極めたデバイスを見たのは初めてでしたし、ここまで引き算してもなお残るiPodらしさも凄いなーと思ったものです。

私のアプリ「DJ Beats」も機能はiPod Shuffleに負けず劣らず少ないです。
音楽を再生するアプリなのに楽曲を選択する画面は無く、ランダムで曲が再生されるだけ。操作は「曲の一時停止/再生」「次の曲(ランダム)」「今流れている音楽を最初から再生」だけしかできません。
これをあえてどんなトラックが流れてもすぐに対応して即興ラップできるように練習するためのアプリとして提示することで、機能の少なさをこのアプリの特徴に変えられたと思います。

「DJ Beats」は我ながらうまいこといったアプリですが、これを量産するのは結構たいへん。
機能を盛ることは意外と簡単ですが、減らしていくのは結構難しいんですよね…。

その代わりとことん引き算したアプリはアプリの特徴・個性を説明しやすいし、何より開発が短期間で済むので、早い段階で世の中に出すことができます。
「毎日コーディング生活」の基本理念である「Done is better than perfect(完璧を目指すよりまず終わらせろ)」にも非常にマッチします。

ということで、今後も完璧で高機能なアプリを目指すのではなく、iPod Shuffleみたいなアプリをたくさん作っていくことを目指したいと思います!

毎日コーディング生活 5月のノルマ達成状況

  • 毎月1本新アプリをリリースする:未達成
  • 毎月1回は公開済みのアプリをアップデートする: 達成
  • 毎月1つ、GitHub上でPublicレポジトリとして何かしら公開する:未達成