開発日誌

Windows 版も、同じコードで。

LAWRENCE

スマホで使っているカレンダーを、仕事中はパソコンでも開きたい。そう思って、Windows 版を作っています。スマホ版でできることは全部できるようにするつもりで、諦めたのはウィジェットだけです。ただ、ここで書くのは機能の話ではありません。同じアプリを 2 つ作ると、ふつうは中身が食い違っていきます。そうならないようにした話です。

「写す」のをやめました

同じ機能を 2 回書くと、必ずどちらかだけ直す日が来ます。これはスマホ版の中でも経験しました。日表示と週表示で「開いたときにどこから見せるか」を別々に書いていたせいで、同じ予定なのに画面によって開く位置が違う、ということが起きました。いまは 1 か所にまとめてあります。

画面が 2 つでそうなるのですから、アプリが 2 つなら確実にずれます。しかもずれたことに気づくのは、たいてい使っている最中です。

そこで Windows 版は、スマホ版のファイルをそのまま読む形にしました。コピーを置いていません。いま 30 ファイルほどを両方で共有していて、Google カレンダーとのやりとり、終日予定の詳細と費用の読み書き、日付の計算、ToDo、圏外のときの控え、履歴は、どちらも同じ 1 つのファイルが動いています。

直すのも 1 回で済みます。片方だけ直して、もう片方を忘れる、という形がそもそも作れません。

1つ混ざると、共有できない

ただ、どのファイルでも読めるわけではありません。Android にしかない部品が 1 つでも混ざっていると、そのファイルはまるごと共有できなくなります。99 行が計算で、1 行だけ Android のものを使っている、という場合でも駄目です。

なので、そういうファイルは計算のところだけを小さく切り出しました。圏外で保留している操作の形、予定一覧の日時の書き方、同じカレンダーが 2 つ出てきたときにどちらを残すか、編集画面の選択肢。どれも、どちらでも同じでないと困るものです。

逆向きに切り出したものもあります。背景に写真を敷いたときに文字を読めるようにする計算は、ほぼ全部がただの計算なのに、写真の明るさを測る関数 1 つだけが Android のものを使っていました。それを外へ出したところ、ファイルごと共有できるようになり、そこに付いていた 58 件のテストも Windows 側で走るようになりました。

テストが、両方で走る

共有しているのはアプリの中身だけではありません。テストも同じものを読んでいます。いま Windows 側で 574 件が通っています。計算を 1 か所直せば、両方のテストが同時に答えを返してくれます。

おまけもありました。スマホ版のテストでは、JSON を読み書きする部品が「呼ぶと落ちる」偽物に差し替わっているため、圏外用の控えが正しく往復するかを確かめられずにいました。パソコン側には本物が入るので、ずっと確かめられなかったところが、ここで確かめられるようになりました。

諦めたのはウィジェットだけ

スマホのホーム画面に置く 2 種類のウィジェットは、Windows には置き場所がないので作りません。その代わりが常駐です。窓を閉じてもアプリは終わらず、通知領域に残ります。2 分ごとに予定を取り直して、時間が来たら Windows の通知で知らせます。

画面が大きいぶんは、一度に見える量を増やしました。月表示の右に予定の詳細がそのまま出ますし、検索は Ctrl+F で開きます。終日予定に「集合 8:00 / 現場 9:30〜17:00」のような行を書き足す欄も、スマホとまったく同じ部品です。だから同じ書き方で、同じ形で保存されます。

残っているのは「包む」ところ

まだ配れません。そもそも、まだ作っている途中です。動くところまでは来ていますが、人に渡せる形に包むところと、ストアへ出す手続きが残っています。通知を出すと差出人が「OpenJDK Platform binary」と表示されるのも、そのときに直るところです。

配り方は、いまのところ Microsoft ストアを考えています。置き場所とアップデートをストアに任せられるからです。いつ出せるかは、まだ書けません。できたらここでお知らせします。

Android 版は、いま Google Play で公開に向けた準備をしています。こちらも進み次第、この開発日誌に書いていきます。

カレンダー by LAWRENCE使い方を見る開発日誌

前の回 — 架空の予定次の回 — 紙の別紙をやめて、26:00 と書く。開発日誌の一覧

現場で困ったことから作っています。
使ってみて気づいたことがあれば、Xで教えてください。
つくっている人
LAWRENCE
LAWRENCE
アプリ開発 / イベント運営サポート
福島県郡山市で、ひとりでAndroidアプリを作っています。 イベントの現場では設営と、ステージの図面も描いています。 現場で自分が困ったことから、ひとつずつ作っています。
記事URLをコピーしました