Androidが普及する前のモバイルOSと言えば、Windows CE、Symbian OS、Newton OS、Palm OSなどです。
筆者は、Windows CE向けにDMoneyなどのアプリを開発していたこともあり、思い入れがあるのでAndroidの話題から外れますが、今回はWindows CEを取り上げていきます。
30年近い時間が経過しました
Windows CEは、2023年10月10日に
冒頭で取り上げたOSの中で、いまも現役でメンテナンスされているものはありません。モバイルは魑魅魍魎がはびこる業界で、10年単位で生き残るのは簡単なことでない証とも言えます。
Ending Support in 2023 - Microsoft Lifecycle | Microsoft Learn
余談にはなりますが
話をWindows CEへ戻します。
この印象も薄れつつありますが、90年代を代表するPC向けのOSメーカと言えばMicrosoftです。Windows CEは、Windows PegasusのコードネームでMicrosoftが開発した組み込み向けの32ビットOSでした。
もう見る機会が少なくなりましたが、搭載するデバイスは、SH3やMIPS R3000、R4000といったプロセッサで動作していました。ARMが幅を利かせるようになったのは、この後からです。端末は、キーボード搭載の小型クラムシェル型で、Handheld PCと言われていました。
「モバイルギア」
Handheld PCと並行して、端末は手のひらに収まる大きさで、見た目が現在のスマートフォンに近い、Plam-size PC
Androidは、2007年11月に発表、翌年の10月から端末の発売が開始されます。この後、モバイルOSは、AndroidとiOSの2択になっていくのはご存知のとおりです。
開発環境は強力でした
Windows CEは、Windowsを縮小したようなユーザインターフェースをモバイルに持ち込み、アプリの開発はWin32 APIを使うというものでした。当時は斬新なアイデアで、筆者もこれに感銘した覚えがあります。
また、開発者向けのサポートも手厚く、個人デベロッパの筆者でもWindows CEの初期からSDKが入手できる状況でした
アプリ開発は、Visual Studioでクロスコンパイルをして、エミュレータでデバッグ、最終は実機で確認の流れで、今の開発スタイルとそう変わりありません。
今のように、AndroidとiOSで動作するアプリを、1つのコードで開発するために、Web技術をベースにすることはなく、WindowsのプログラミングモデルとC言語で使って開発します。Win APIでアプリを開発したことがあるならば、多少の学習は必要でしたが、PCと同じような感覚でアプリ開発ができました。とは言え、CPUは40MHz程度のSH3、メモリは4MBとハードウェアリソースは限られていたので、これらを常に意識して開発する必要がありました。
当時は、C言語を当たり前のように使っていたので、これを使うことに疑問を持つことがなかったのと、アプリ規模がそれ程大きなものではなく、ネットワークを前提としないアプリが多かったので、デバッグに苦心することはありませんでした。
数年は、アプリ開発を続けていたと思います。
この数年の間で、C++のSTLが使えるようになり、筆者にとってはパラダイムシフトでした。当初は、メモリ喰いの印象を持っていましたが、次第に気になることはなくなり、開発スタイルに変化をもたらした記憶が残っています。
筆者が開発していたアプリでは、部分的に導入はしていましたが、もともとC言語をベースに書いてあったために、全面的に移行することはなかったと記憶しています。
ここまでが、筆者のWindows CEの歴史です。
以降は、Windows Mobile、Windows Phoneとになりますが、これは、機会があれば取り上げたいと思います。
今週は、このあたりで、また来週。