またまた前回に続き、NikoNikoLog のモバイルウェブ版の開発の話、しかもまた前回から引きずっているフロントエンド用フレームワーク開発の話です。
完全に開発者向けの記事が続いてしまって申し訳ありませんが、もうちょっとだけお付き合いください。
atotok ブランドの製品である NikoNikoLog と 10Years 、これらの製品群に我々の意図した通りの一貫したユーザー体験を与えるためには、フロントエンド用フレームワークの開発がチームに課せられた急務でした。
開発は最初から綿密に設計して行う選択肢もありましたが、まずは先に作った NikoNikoLog のモックをフレームワークベースの実装に置き換えるところからはじめました。なのでフレームワーク自体は完全に新規開発とはいえど、*その一方で NikoNikoLog の次期大規模アップデート開発の成果物でもあります。*
ちなみにフレームワーク化するにあたって、どうしても名前が必要になります。とりあえず軽い気持ちで TAppKit と名付けておきました。TAppKit の T は atotok、10Years、NikoNikoLog と言った製品が社内で Tule Project と呼ばれていることに由来します。
TAppKit と名前まで仮ながら決めたものの、そのフレームワーク開発は ES6(ES2015)で行うのか、CoffeeScript で行うのかは結構悩みました。ちなみに TypeScript は完全に最初から対象外だったのはうちの社風から察してください。
結局、制御系の構文をスマートに書きやすいなどの理由で CoffeeScript を採用することにしました。let
や const
などの ES6 の機能は使いたいと思いつつも、今回のフレームワークは各機能が細かくコンポーネント化、クラス化されていたりするので不用意な変数による侵食は起きづらいであろうとの判断もありました。それでも実はそれを決定に持っていくまでの間、水面下では CoffeeScript と JavaScript の両方で同じ実装を進めていた・・・のもまた懐かしい話です。
今後、状況次第では CoffeeScript で書いているコアなコードを JavaScript にリプレイスする可能性も・・・もしかしたらあるかもしれません。
TAppKit はその設計思想や使い勝手において、Ruby on Rails と Apple の提供する AppKit の影響を大きく受けています。データの取り扱いに関する部分は Rails、UI に関する部分は AppKit の影響を受けていることが顕著です。
例えば TAppUILabel では表示テキストを以下のコードで書き換えられますし、TAppUIImageView なら以下のコードで表示画像を変更できます。
この記事の続きはアトトックラボでご覧ください。
10Yearsは理想の姿を明確に描くためのサービスです。
10年先の将来を考えることで今なにをすべきか見えてきます。
さあ、10年後の自分に向けて10Yearsを始めてみましょう。
ニコニコログは毎日の気分の変化を記録するためのサービスです。
記録した気分の変化は、カレンダーで過去に遡って一覧できます(チームのカレンダーはもっと便利です!)
もし悲しい顔のアイコンが毎日続いていたら・・・生活を見直す時期なのかもしれませんよ!