MenubarClock 1.1

Menubar Clock
OS X専用アプリ、MenubarClockのアップデートを公開しました。

Mac App Store

今回の主要な変更は、設定画面の改善です。

Menubar Clock Settings

日時の表示形式が使えるもの全て選択にあったのですが、ひとたび何かに間違って変更してしまうと、数が膨大で元に戻すのが困難な状況でした。
今回この設定を削除し、OSでの設定を使用して表示するように変更しました。
また、都市を地域ごとの階層に分けました。それでも量が多いので選択しやすくなったかはちょっと微妙なところですが。
世界地図からの選択などもいくらか試しましたが、今回は見送りました。

時計の表示部分について、キャプションを削除した表示ができるオプションを用意しました。
appimage3

クリックすると詳細な日付・日時を表示する機能も追加しました。

その他、フォントの変更やレイアウトの調整を行いました。時計の表示が多少見やすくなったかと思います。

今回のアップデートよりアプリケーションのサンドボックス化を行っています。審査が通らなくなってしまうので対応したのですが、ちょっと厄介な存在でした。設定ファイルの位置も変わりますが、自動的に移行される、はず、です。

以上は1.1.0での改善・追加です。現在App Storeで公開しているバージョンは1.1.1で、一部に不具合があったためそれを修正しています。

虚構新聞 for Androidをリリースしました


googleplay

虚構新聞 for Androidをリリースしました。

Android版については制作する予定はなかったのですが、なんとなくあってもいいかぁと。
仕様的なところではiOS版の通りのものであればいいので、
テーブルぴょーんって出して、通信にょにょってして、
記事ひょんとだして、通知ちくちくして、あと細かいことごにゃごにゃすれば出来るだろうと。

多少おかしな表現はありますが、実際の開発でもそんなこと言ってた気がしますし、
リリースまで至ってますので開発なんてそんなものです。

虚構新聞社的にはiOS専門という表現もあったようですが、
他のモバイルに比べるとiOSが開発しやすいというだけで
別に専門というわけでもなく致し方なく何でもやっております。
ですがAndroidはもういいです。

結果的に虚構新聞社より謝罪コメントを引っ張り出せたということでよしとしましょう。
(虚構新聞社検閲済)

時差プラス 1.4.1

ltp1_4_1

世界各地の時間を確認できるiOSアプリ・時差プラスをアップデートしました。
App Store

iOS 9に対応
対応OSをiOS 9.2以降とし、それに伴って検索画面などを少し変更・修正しました。

4.7インチと5.5インチの画面に対応
iPhone 6なら5つ、iPhone 6 Plusなら6つの都市を一度に表示できるようになりました。

都市の追加
タシケント(ウズベキスタン)、ハノイ(ベトナム)、カトマンズ(ネパール)、イスラマバード(パキスタン)、カラチ(パキスタン)、トビリシ(ジョージア)、バクー(アゼルバイジャン)を追加しました。
大別するとアジアの大きな都市と南コーカサスの都市です。タシケントにはいつか行きたいです。
南コーカサスの都市は、グルジア→ジョージアへ読み方が変わったというニュースをきっかけに追加しました。アルメニアも同じ時間帯ですね。アゼルバイジャンはサマータイムがあったので、併せて追加しました。

この他に、ウィジェットの初期状態の修正などを行いました。

海外旅行や海外のニュースを見る際などに、ぜひご活用ください。


虚構新聞アプリも10月のリリースから1.0.1と1.0.2の2度のアップデートを行っています。
App Store

ナビゲーションの改善やiPad用の表示の改善などを行なって、より使いやすくなりました。
新着記事だけでなく、過去の記事やPodcast、4コマまんがなど、虚構新聞のコンテンツをまるごと楽しめますので、虚構新聞好きの方や虚構新聞に釣られないためにいち早く記事をチェックしたい方はぜひご利用ください。市田さんの描くまんがを読みたい方にもおすすめです。

Air Launcher 1.0.1

icon

Apple TV(tvOS)専用アプリケーション、Air Launcherの最新バージョン1.0.1を公開しました。
更新内容は以下のとおりです。

動画を続きから再生するようにしました。
動画を再生したディレクトリを、履歴として表示するようにしました。
プレイヤーをJavaScriptでカスタマイズできるようにしました。
通信ヘッダにIDを付加しました。
menuBarに関する問題を改善しました。
サーバ削除に関する問題を改善しました。

その他、さまざまな改良を行いました。

C89、3日目 東 ム45bにいます。

tvOSでは、iOSののApp Storeのように「アップデート」のページがなく、
アップデート文章は、App Store内のアプリのページへ行って、さらに一番下のボタンを選ばないと表示されないので、なかなか読んでもらえそうにありませんね。

アップデート内容は、主として動画再生がより便利になるための改善・改良と、問題の修正です。
IDの付加は、AirLauncherで接続するそれぞれのサーバでユーザの識別が必要な場合にご活用ください。

ご注文はApple TVですか?
アップデート文章にも書いてあるとおり、冬のおまつり・コミックマーケット89にサークル参加します。

Nagisa unworks C89 3日目 東ム45b

もともと主催が別にいて、我々は支援のみの予定だったのですが、せっかくだから本を作ってみようとAir Launcherを製作するにあたり調べたことなどをまとめてみました。
「ご注文はApple TVですか?」という何ともあれなタイトルですが、JavaScript(TVJS)とXML(TVML)で作るtvOSアプリの本です。
開発にあたっては公式ドキュメントがいちばんの情報なのですが、
最初は躓いてしまうかもしれないことや、そもそもドキュメントに書いてないことなど含め、
「だいたいこんな感じですよ」が分かるような本を目指しました。
Apple TVをお持ちの方もそうでない方も、「こんなふうに作って遊べるのかー」と思っていただければと。
PDF等での配布は行わないので、当日ぜひお越しくださいませ。

Air Launcher (for AppleTV) をリリースしました

icon

tvOS用のアプリ、Air Launcherをリリースしました。

このアプリは、手持ちのサーバーにある動画ファイルなどをAppleTVで閲覧するアプリです。
元々自分達用に作ってみたもので、いわゆる俺専アプリなのですが、配布もなにかと面倒なのでStoreへ出してしまえばダウンロードも楽だねということで、試しに出したら通ってしまったものです。
ですので、使える人だけ使ってもらえればということで、要望奴隷に服役する予定はありませんのであしからず。

いやぁ、AppleTV便利です。
HDMI連携でAppleTVのリモコン押せばTVの電源ONになって入力切替済み、スリープすればTVの電源も切れる。
自前のサーバーには録り貯めた録画ファイルなどが随時追加されているのですが、リモコンを2〜3タップすればすぐ見れると、快適になりました。

個人的にはこれがあるとないとではAppleTVの価値が1000倍は以上の差があるAir Launcher、これはサーバーを必要とします。
ホームページにはOSX, Windows,Linux, Raspberry Pi(同バイナリでLinkStationも動作確認済)等のサーバーアプリのサンプルがありますので、こちらでお試しになってください。

また、簡単なデモとして既存のサーバーにもサンプルを用意しました。
Air Launcherにて、nagisaworks.com/stv と入力すれば、少し色々なデモが閲覧できます。

このAir Launcher、実際のところは AppleTVでのブラウザアプリのようなものになっています。
概略だけ説明しますと、AppleTVには従来のiOSと同様のSwift/Obj-Cでのネイティブでの動作(Traditional App)と、もうひとつ、TVML, TVJSによる動作(Client-Server Apps)があります。
TVMLは Apple’s Television Markup Language、いわゆるtvOS用のXMLです。
TVJSはそれらを操作するJavaScriptとなります。
Webでいうと、HTMLとJavaScriptのようなものです。
これらはSwiftでUIWebViewを貼ったような感じで、混ぜても使用できます。
最近でいうとReact Nativeみたいな機構でしょうか。
ちなみにAppleTVにはいわゆるWebブラウザの機能はなく、代わりにこの機構が提供されているようです。

Air Launcherの本当の姿はTVML, TVJSを外部から読み込んで実行する機能を提供するアプリです。
ということは、細かいところを端折ると、Webにおけるサーバーとブラウザの関係と同様、XMLをサーバーから配信すればAir LauncherにてAppleTV上に自由にデータなどを表示できます。
AppleTVバンドルのMovie appやMusic app、その他ストアにあるであろう簡単な動画提供アプリなどはTVML,TVJSを利用しているようで、それらと同様の表現は大体Air Launcherを用いて実現できます。

WebのようにClient-Server構成に出来るということは、後から画面や表示内容をいくらでも変更できるということです。
ネイティブだと画面デザインを変えるとなるとコードでの修正&アップデートなど大変です。
また、じゃあ遅いのかなとか思ってしまうわけですが、DOM等は内部UIControlに直結していますので、テンプレートなどいくらか固定されてしまいますが、ほぼネイティブと同様の表現力があります。

メディアの再生はAppleTVのスペックのまま、mp3,m4a等の音楽やmp4等の動画再生、HLS(HTTP Live Streaming)も可能ですので駆使すればライブ配信も可能ですね。

Air LauncherにはXMLを直接読み込み再生などの若干の支援をする機能とJavaScriptを直接実行する二種類のモードを設けています。
通常はXMLモードでよいかと思いますが、さらに細かい処理をしたい場合は直接JavaScriptを使うことができます。
仕様についてはGitHubにサンプルとREADMEを置いておりますのでそちらを参照してください。

また、GitHubに置いているサーバーのサンプルはGo言語で書いてみました。
Goは自前でちゃんとしたHTTPサーバーもあり、クロスコンパイル機能で様々なDevice, OS用に単体バイナリが作れるので楽ですね。
所詮はHTTPサーバーですので、PHPでもRoRでもNode.jsでも、サーバー本体もなければそのへんのレンタルサーバーでも好きなものを使って頂ければ結構です。

サンプルや、TVML, TVJSなどAppleのドキュメントを参照して頂ければ大体はどういったものか分かってもらえるかと思いますが、かなり説明を端折ってしまいましたので、また細かく説明できる機会があればと思います。