今年作ったものの苦労話【開発中・個人開発】
初めに
「個人開発 Advent Calendar 2022」の23日目の記事です。
年納めというつもりで書きました。本当は、この後で紹介する「コミュGameNews」が完成して、その紹介をここでしたかったのですが、残念ながら、完成しなかったので、「ぼちぼちこういうことしてました」みたいな記事になりました。
「メモだい!」
フルネームで、「Dynamic Memo」です。
タブレット・パソコンでの使用を前提にしているメモソフトです。
2022年4月から本格的に開発開始しましたが、まだ開発中です。
下記のツイートは、最新のアプリ開発中画面です。
開発苦労的な話
4月からは、Android端末向けのアプリとして開発を続けて、11月末まで開発を続けていました。
結構進んではいるのですが、如何せん、私の体調不良と基本的なブツとして開発環境のお陰で開発が遅いです。
「基本的なブツとして開発環境のお陰」で開発が進まない
「基本的なブツとして開発環境のお陰」って何ぞやと言われそうなのですが、使用しているライブラリと作っている企画の作りの相性が悪いという意味です。
Android開発に使用しているライブラリは、基本は.NET MAUIなのですが、文字表示や手書きペンの描画には、skiasharpを使っているです。一見、特に問題なさそうに見えるライブラリ構成なのですが、はっきり言って、かなり開発しにくい。
2か月程度は、コードの書き方は分かるもの、正攻法な組み方が分からず、「動くけど、めっちゃ動作重い」「○○機能は作れるけど、△△機能は作れない」みたいなことが発生して、頭を捻りまくってました。
結局ネイティブAPI叩くこと多い
.NET MAUIは、マルチプラットフォームなアプリを開発が出来るライブラリですが、開発企画の問題で、結局ネイティブAPIを叩いていることが多いです。
例えば、このツイート動画だと、文字入力からフォントや文字色などを取得する際には、ネイティブAPIを叩いています。
他にもネイティブAPIを叩いていますが、作れば作るほど、メモアプリと呼ばれるものは、かなりライブラリに対して無理をして、実装していることが理解できてきます。
無理というのは、本来、UIというのは、自由配置は、あまり推奨されません。メモ系アプリは、それを自由配置を多用しまくって、強引にオレオレUIに落とし込んでいることが殆どなので、どこかで、バグが出やすかったりします。
結局バグ取りに追われて、時間が溶けていく…泣きそうになります。
それを思うと、この後に書く、「コミュGameNews」企画は、実に開発しやすい企画です。
「コミュGameNews」
フルネームで、「Community Game News」です。
2022年11月6日から開発開始しています。
この記事書いたときには、完成している予定でしたが、完成しませんでした。今も絶賛開発中です。
多分、1月から2月あたりにリリース出来ると思います。
企画内容としては、ゲーム関係の記事を投稿できるWebサービスというものです。
超簡単に言うとZennのゲーム版です。
開発苦労的な話
使用しているフレームワークは、Blazorです。
苦労は、驚くほどありません。
というのも、この企画は、「メモだい!」と違って、超王道な設計になっているからです。
そもそも論、この世の中には、ログイン処理が入っているWebサービスは、腐るほどあります。
なので、基礎となるフレームワーク(Blazor)の中に、標準搭載されています。
ブログ的な仕組みのサイトは、更に腐るほどあります。なので、資料はいっぱいあります。
データベース関係は、EF Coreというライブラリを使っているため、SQLを生で叩くことはなく、SQLインジェクションが発生せず安全に書くことが出来ます。
他に技術的に苦労する点があるかというと…まぁ、ないですよね。
7年ぐらい前に勉強で、MySQLを生でSQL叩いて、Apacheとtomcatで開発しましたが、それに比べると本当、楽です。凄く楽です。セキュリティを意識することが、かなり減っています。
まとめ!
今後、開発は「コミュGameNews」優先で進める予定です。
需要があるかという話は置いておいて、開発苦労を考えると、王道な設計っていいだなぁ…と思いました。「メモだい!」の開発問題は、内部動作をゲームエンジンに切り替えないと難しいと、半ばあきらめていて、切り替えた場合全て作り直しになります。なので、このまま.NET MAUIとskiasharpで頑張って開発を続けたいと思います。
以上、今年の開発記録でした!おしまい!
Discussion