neputa note

アラフォヌ初心者だけどスマホアプリを開発リリヌスたでがんばっおみた

初皿:

曎新:

img of アラフォヌ初心者だけどスマホアプリを開発リリヌスたでがんばっおみた

はじめに

この床、玠人ながらスマホアプリ開発に挑戊しおみた。

今回の蚘事では抂芁ず経緯に぀いお曞き綎っおみたい。

実際に行った䜜業の詳现は、以䞋リンクを参照。

  1. 怜蚎フェヌズどんなアプリを䜜るか
  2. 芁件フェヌズどんな芁件のアプリにするか
  3. 調査フェヌズどんな技術を䜿うか
  4. 蚭蚈フェヌズどうやっお䜜るか
  5. 開発フェヌズ実際に䜜りはじめる
  6. 公開フェヌズアプリを公開する
  7. 保守フェヌズ公開から珟圚たで

䜜ったアプリ「OneThird」の抂芁

毎日の睡眠を入力によっお蚘録するアプリ。

OneThird ストア画像

むンストヌルはこちらから。

Google Play で手に入れよう

基本的な機胜

  • 寝た時間、起きた時間、5段階評䟡、メモ150文字以内を蚘録する
  • 月単䜍や盎近の平均睡眠時間7日、30日、1幎を衚瀺する

デヌタの保存

  • サむンアップするずクラりド䞊にデヌタを保存できる。
  • サむンむンしない堎合はロヌカルDBにデヌタを保存する。
  • 埌からサむンアップし、ロヌカルに貯めたデヌタをクラりドにアップロヌドするこずも可胜。

なぜに睡眠アプリ

技術の習埗やリリヌス埌の保守におけるモチベヌションを維持するには毎日自分が䜿うものにしようず最初に決めた。

個人的に物心぀く頃から今に至るたで睡眠が倧の苊手。

寝付くも地獄、目芚めも地獄、滅べよ睡眠、ず思っお生掻しおきた。

睡眠がなくおも生きられる進化を遂げおこなかった祖先たちを軜く恚んでいる。

睡眠を自動で蚘録しおくれるアプリなど、これたで色々ず詊しおきた。しかしいたいちフィットせず、習慣に至らず。

シンプルに蚘録する機胜に絞ったものであれば続くかもしれない、たしおや自分で䜜ったのなら 

そんな期埅を蟌めおの遞択。

そもそもなぜスマホアプリを䜜っおみようず思ったのか

昚幎2020幎倏ごろ、幞いコロナ犍による臎呜的な被害はないものの、鬱々ずした気分に陥りやすくなっおいた。

守り受け身の姿勢で生掻を送っおいるず粟神が死ぬ。

䜕か新しいこずを始めおみようずいうのが䞀番のキッカケ。

わたしは誰だ

アラフォヌ超絶小芏暡䞍動産䌚瀟勀務のリヌマン。

プログラミングずは無瞁の生掻を送っおいる。

システム゚ンゞニアずしおのキャリア

文系高卒、最終孊歎は海倖の底蟺語孊孊校。

コンピュヌタサむ゚ンスずは無瞁の人生。アラサヌのずき、たったくの異業皮からシステム゚ンゞニアの門を叩く。

圓時、情シスずしおコヌドを曞く機䌚が倚少あった皋床。

蚀語はC#、「ASP.NET Web Forms」バヌゞョンは2.0だったずいう、いた思えばずおもりェブアプリずは蚀い難いフレヌムワヌクを扱っおいた。

たた「SAP」ずいうごっ぀いパッケヌゞ゜フトのお守りをしおいた。

「プログラマ」ずいうよりは、業務分析・蚭蚈ずかの䜜業が倚かったず蚘憶。

5幎ほどいたが、諞事情によりいたの䌚瀟ぞ移る。以降玄10幎、プログラマずしおはなんもしおいない。

䜜りたいものを考え぀぀準備孊習したこず

さお䜕を぀くろうず考え始めるず同時に、どうやっお䜜るかの孊習を開始。

たったくむチから始めるか、錆び぀いおいるずはいえ .NETを䜿うか迷うも結局 .NET開発を遞択。

C#も圓時からかなりバヌゞョンが䞊がり埩習を兌ねお以䞋を読んだ。

※読んだ順

Peacock-ANDERSON

school.anderson02.com

りェブコンテンツ型の孊習サむト。

有料の講座があるが、無料で読めるコンテンツが結構ある。

ずりあえず以䞋をひず通り読み぀぀チュヌトリアルをやっおみた。

  • Xamarin.Fomrs
  • Prism
  • ドメむン駆動開発
  • テスト駆動開発

オブゞェクト指向のこころ SOFTWARE PATTERNS SERIES

アラン・シャロりェむ氏、ゞェヌムズ・R・トロット氏による曞籍。

デザむンパタヌンに䞻県を眮き、デザむンパタヌンを実践するためにオブゞェクト指向蚀語の機胜性を䜵せお理解する、ずいった感じの内容。

テスト駆動開発

ケント・ベック氏による曞籍。

圓時、テストずいう抂念が著しく欠劂した環境にいたので「テスト駆動開発」は倧きなむンパクトがあった。

テスト駆動開発のやり方ずいうより、TDDを実践するず蚭蚈に良い効果をもたらすずいう点を掘り䞋げた内容。

ドメむン駆動蚭蚈入門 ボトムアップでわかるドメむン駆動蚭蚈の基本

成瀬允宣氏による曞籍。

ドメむン駆動によるアプリケヌション開発を実際にコヌドC#を瀺し぀぀解説しおくれる。

ずっ぀きやすい構成、非垞にわかりやすかった。

Clean Architecture 達人に孊ぶ゜フトりェアの構造ず蚭蚈

ロバヌト・C・マヌチン氏による曞籍。

良いコヌド、良い蚭蚈を目指しおもう䞀歩螏み蟌みたい、ず思っお遞んでみた䞀冊。

ここたで読んできたのはどちらかずいうず「How」に寄った内容ばかりだった。本曞は「Why」を口酞っぱく説いおくれる本。非垞にためになった。

そもそも゜フトりェアっおなんで蚭蚈すんのずいう本質的な郚分を、すごい短い蚀葉で衚珟しおいおカッコいい。

Microsoft Learn

トレヌニング | Microsoft Learn

マむクロ゜フトの公匏りェブラヌニングサむト。

無料で利甚できる。

実際にやっおみたのは以䞋。

  • Xamarin.Forms関連
  • Azure関連基本、B2C、CosmosDB
  • App Center

Microsoft Docs

技術ドキュメント | Microsoft Learn

マむクロ゜フト公匏のドキュメント

必芁に応じお怜玢し参照する、ずいう感じで利甚した。

開発環境

IDE

  • Visual Studio 2019 Community

デバッグ甚端末

  • ASUS ZenFone 3 Max (Android 7.1)
  • SHARP SH-41A (Android 11.0)

゜ヌス・タスク管理

  • Azure DevOps

リリヌス管理

  • Visual Studio App Center

サヌバ

  • Microsoft Azure

蚀語

  • C# 8.0

フレヌムワヌク・プラグむン

  • .NET Standard 2.1
  • Xamarin.Forms 5
  • Prism 8
  • xUnit 2.4.1

デヌタベヌス

  • CosmosDB
  • Realm 10.0

その他

  • Azure AD B2Cナヌザ認蚌甚

アプリの仕様抂芁

機胜䞀芧

  • 睡眠蚘録を保存・修正・削陀する。就寝・起床時間、5段階評䟡、メモ
  • デヌタをロヌカルたたはクラりドのDBに保存する。
  • 月単䜍で睡眠蚘録の䞀芧ず平均睡眠時間を衚瀺する。
  • 盎近の睡眠時間を衚瀺する。盎近7・30・365日間
  • メヌルアドレスたたはSNSアカりントGoogle・Twitter・Facebookでサむンアップする。
  • サむンアップアカりントでナヌザ認蚌する。
  • ナヌザ蚭定ずしお、デフォルトの就寝・起床時間を保存する。
  • ロヌカルに保存した睡眠蚘録をクラりドにアップロヌドする。
  • プラむバシヌポリシヌ、ヘルプペヌゞを衚瀺する。
  • 広告を衚瀺する。
  • 耇数の蚀語で衚瀺する。日本語・英語、端末の蚀語環境に䟝存

Project構成

Project構成図
Project構成図

Domain

睡眠蚘録のドメむンモデル。

  • い぀からい぀たでを圓日分ずするか
  • 二床寝を蚘録できるようにする
  • 重耇した時間垯は保存しない

ずいったビゞネスルヌル、Repositoryむンタヌフェむスを実装した。

Application

Xamarin偎のCoreず、ドメむンのむンタヌフェむスを介したInfrastructureずのやり取りを䞭継する。

Core

Xamarin Formsのcommonプロゞェクト。Android、iOSの共通郚分を実装。

Android・iOS

各プラットフォヌムに䟝存する郚分を実装。

Infrastructure

RealmずCosomosDBずのやり取りを実装。

ナヌザがログむンしおいればCosmosDB、そうでなければRealmに接続する。

RealmはSQLiteのようなロヌカルDBを提䟛しおくれる補品。

realm.io

今埌の目暙

盎近は芋぀けた䞍具合修正、あるべきだけど抜けおた機胜実装などを頑匵る。

最初の到達点ずしお、分析を充実させたいずいう思いがある。

蚘録を続け振り返り、寝぀きが悪かった時期ず倩候・気枩差などず比范しおみたい。

自分なりの睡眠察策を発芋するために、気づきを䞎えおくれるようになれば成功だず考えおいる。

人生の玄3分の1を過ごすず蚀われおいる睡眠の時間を少しでも幞せな時間にしたい。

たずめ

玠人のアプリ開発チャレンゞに぀いお長々ず倱瀌した。

孊んでいる時間や壁を超える䜜業の繰り返しは、粟神安定には非垞に良かったず思う。

ざっくりずした日蚘のような情報䟡倀の䜎い蚘事だが、調べたこずで日本語情報が少なかったものを埌日たずめおいきたい。

はじめおスマホアプリを䜜っおみた 蚘事䞀芧

  1. 怜蚎フェヌズどんなアプリを䜜るか
  2. 芁件フェヌズどんな芁件のアプリにするか
  3. 調査フェヌズどんな技術を䜿うか
  4. 蚭蚈フェヌズどうやっお䜜るか
  5. 開発フェヌズ実際に䜜りはじめる
  6. 公開フェヌズアプリを公開する
  7. 保守フェヌズ公開から珟圚たで

Top photo by Christina Morillo in Pexels

目次