Show original
Try the app

byRail
Enjoyed this article?
Support 山本康介
AI translation
Record railway itineraries and vehicles together
Try the app

byRail
Enjoyed this article?
Support 山本康介
The development of byRail is not the first time. We have attempted to shape it as an app many times before, but development continuation and data preparation proved difficult, and we had to suspend the project without reaching completion. There was also a previous version of byRail that reached public release, but there were still areas we wanted to expand in terms of supported stations and routes, vehicle data, and screen usability.
Nevertheless, our desire to create an app that could properly record the railways we rode remained unchanged. This development effort was undertaken as the final byRail development, building on the trial and error of previous attempts. We organized the issues found in past efforts and aimed for completion not only of the app itself but also of the data that supports daily recording.
The origin of this app's concept lies in byAir, a flight record management app. Just as we keep records of flights we've taken, we wanted to record the sections and routes we traveled by train, as well as the trains and vehicles we rode, in a form we could review later. This idea became the starting point for byRail.
While drawing inspiration from byAir's approach, we designed it to handle transfers and connections between multiple sections unique to railways. We record each riding section individually, and can group multiple sections into a single journey or separate them as needed. Even when journeys are grouped together, the structure preserves information about stations, times, and train details for each section.
In this version of byRail, compared to the previously released app, we significantly expanded the range of supported routes and stations. Rather than just collecting station names, we organized the relationships between stations, operators, and routes, making it possible to distinguish different routes with the same station name when selecting candidates.
The station and route data contains 11,303 relationships between station names, operators, and routes. There are 8,470 unique station names, 161 operators, and 634 combinations of operators and routes. The 11,303 entries do not represent the number of stations themselves, but rather the relationships between station names, operators, and routes. We updated the data to the latest information confirmed at the time of data preparation, expanding the stations and routes available for current recording.
Vehicle data was also organized by operator, with train types and formations. The train type and formation data covers 216 operators with 11,524 records. For operators without data, rather than leaving them unconfirmed, we verified them and treated them as having 0 records, organizing the information presented in candidates.
Simply increasing data does not make a usable recording app for daily use. Compared to the previous public release, we also reviewed the screen layout and input operations. Station names are arranged vertically with the departure station, an arrow, and the arrival station, making it easier to follow the flow of the journey even when station names are long or when viewing multiple sections in succession.
Station candidates display the route name and operator name, and the information of the selected station is reflected in the input field. Vehicle information can be selected in the order of operator, train type, and formation, and when a train type is selected, the candidates are narrowed down to the corresponding formations. The candidate list itself can be scrolled, candidates can be narrowed down from input characters, and after selection, the behavior aligns with candidates being stored.
We also organized the input fields for operation information and vehicle information, arranging items such as train type and train number vertically for easier reading. We adjusted both the operation of selecting candidates and the screen for confirming recorded content, enabling continuous input from stations to trains and vehicles.
This app development proceeded in Google AI Studio, after which we exported the source code and migrated to the Manus environment. We prioritized incorporating the station database and train type/formation database, refining the behavior of input fields and candidate selection, and progressing to the point where we could present an APK quickly.
During development, we not only added data but also verified one by one whether selected candidates were reflected in input fields, whether candidates could be selected even when there were many options, and whether narrowing down by text input was possible. While transferring the app's source code and a large amount of data to a new environment, we inherited the specifications and corrections accumulated so far and proceeded to completion.
byRail, which we attempted to develop multiple times before abandoning, has finally been completed this time with greatly expanded support for stations and routes, train type and formation data, and input screens. It is an app that takes the idea of "reviewing records of movement" inherited from byAir and shapes it to match railway riding sections and journeys. We will apply the trial and error of the past to future railway recording.
byRailの開発は、今回が最初ではありません。これまで何度もアプリとして形にしようと試みましたが、開発の継続やデータ整備が難しく、完成に至らないまま中断したこともありました。公開まで進んだ前回のbyRailもありましたが、対応する駅や路線、車両データ、画面の使いやすさには、まだ広げたい部分が残っていました。
それでも、乗った鉄道をきちんと記録できるアプリを作りたいという考えは変わりませんでした。今回の開発は、これまでの試行錯誤を踏まえた、最後のbyRail開発として取り組んだものです。過去の試みで見つかった課題を整理し、アプリ本体だけでなく、日々の記録を支えるデータも含めて完成を目指しました。
このアプリの発想の原点には、飛行記録管理アプリbyAirがあります。飛行機で移動した記録を残すように、鉄道でも乗った区間や経路、乗車した列車や車両を、あとから振り返れる形で記録したい。その考えがbyRailの出発点になりました。
byAirの考え方から着想を得つつ、鉄道ならではの乗換や複数区間のつながりを扱えるようにしています。乗車区間を一つずつ記録し、複数区間を一つの行程としてまとめたり、必要に応じて分けたりできます。行程をまとめても各区間の駅や時刻、列車の情報を保てる構成にしました。
今回のbyRailでは、前回公開していたアプリと比べて、対応する路線や駅の範囲を大幅に拡大しました。駅名だけを集めるのではなく、駅・事業者・路線の関係を整理し、候補を選ぶときに同じ駅名の別路線を見分けられるようにしています。
駅・路線データには、駅名と事業者と路線の関連が11,303件あります。ユニークな駅名は8,470種類、事業者は161、事業者と路線の組み合わせは634です。11,303件は駅そのものの数ではなく、駅名・事業者・路線の関連を数えたものです。データ整備時点で確認できる最新情報に更新し、現在の記録に使える駅・路線を広げました。
車両データも事業者ごとに形式と編成を整理しました。形式編成データは216事業者、11,524レコードを収録しています。データがない事業者も未確認のままにせず、確認したうえで0件として扱うなど、候補に出す情報を整えました。
データを増やすだけでは、日々使える記録アプリにはなりません。前回公開版との比較で、画面の構成や入力操作も見直しました。駅名は出発駅、矢印、到着駅の縦方向に配置し、駅名が長い場合や複数区間を続けて見る場合にも、行程の流れを追いやすくしています。
駅の候補には路線名と事業者名を表示し、選択した駅の情報を入力欄へ反映します。車両情報は事業者、形式、編成の順で選べるようにし、形式を選ぶと該当する編成に候補を絞ります。候補リスト自体をスクロールでき、入力文字から候補を絞り込み、選んだ後は候補が格納される動きに揃えました。
運行情報や車両情報の入力欄も整理し、列車種別と列車番号を縦に並べるなど、項目を読み取りやすい配置にしています。候補を選ぶ操作と、記録内容を確認する画面の両方を調整し、駅から列車、車両までを一続きに入力できるようにしました。
今回のアプリ開発はGoogle AI Studioで進めた後、ソースコードをエクスポートしてManus環境へ移行しました。駅DBや形式編成DBを組み込み、入力欄や候補選択の挙動を仕上げ、早くAPKを提示できるところまで進めることを優先しました。
開発の途中では、データの追加だけでなく、選んだ候補が入力欄に反映されるか、候補が多い場合も最後まで選べるか、文字入力による絞り込みができるかを一つずつ確認しました。アプリのソースコードと大量のデータを扱う環境を移しながら、これまでに積み重ねた仕様や修正内容を引き継ぎ、完成まで進めました。
何度も開発を試みては中断してきたbyRailは、今回、駅や路線の対応範囲、形式編成データ、入力画面を大きく拡張し、ようやく完成しました。byAirから受け取った「移動の記録をあとから振り返る」という発想を、鉄道の乗車区間や行程に合わせて形にしたアプリです。これまでの試行錯誤を、これからの鉄道の記録に活かしていきます。