Node.js with TypeScriptでDBアクセスするWebアプリを作る

TypeScript を使って、 Node.js で DB アクセスするシンプルな Web アプリケーションを作ってみようと思います。 Node.js: v14.17.0 npm: 6.14.13 TypeScript: 4.3.2 express: 4.17.1 MariaDB: 10.5.10 事前準備 Node.js インストールと package.json 作成 以下のいずれかの方法で Node.js をインストールします。 公式サイト からインストーラーをダウンロードしてインストール nodebrew を使ってインストール(こちら を参考にさせていただくといいと思います) 次に、package.jsonを作成します。 npm init TypeScript インストールと tsconfig.json 作成 npm を使用して、TypeScript をインストールします。 npm Continue Reading

Posted On :
Category:

RDS 環境構築(AWSでWebアプリ構築 part1)

こちらの記事 で AWS の基礎はある程度把握できた気がするので、以下のような構成のサンプルアプリを作ってみることにしました。アプリ自体は、「Web画面で入力したコメントをDBに登録する」だけの超シンプルなものです。 全てをまとめてやるのは大変なので、全三回に分けて順番にやってみます。 今回は part1 ということで、「RDS 環境構築」までをやってみたいと思います。具体的な作業としては、VPC を作成し、RDS で MariaDB のデータベースを作成して、テーブルを作成するところまでです。 part1: RDS 環境構築(今回) part2: EKSでRDSにアクセスするWEB APIサーバを構築 part3: CodeBuild・CodePipelineを使ってデリバリーパイプラインを導入 今回利用するサービス Amazon VPC 今回のシステムを構成するコンポーネント全体を所属 Continue Reading

Posted On :
Category:

AWSを一から勉強した箇条書きメモ

仕事で AWS を利用することになり、これまで GCP ばかり利用してきたので、 AWS を一から勉強し直すことにしました。基本的には、以下の二つで紹介いただいている内容を中心に Web アプリケーションエンジニア に必要そうなものをやってみました。 AWSの開始方法(公式) 【AWS初心者向け】AWS学習方法まとめ【15時間で達成できる】 この記事は、参照した Web サイト/動画/チュートリアルの内容を後で振り返るための自分用の箇条書きメモになります。 読み物 クラウド (クラウドサービス) とは?(0.5h) https://aws.amazon.com/jp/cloud/ クラウドについての前提知識を説明してくれてます。 クラウドサービスとは IT リソースをオンデマンドで利用することができるサービスの総称 従量課金が一般的 6つのメリット 固定の償却コストが変動コストに 事前にサ Continue Reading

Posted On :
Category:

ミニマルなCSSフレームワークMilligramの使い方

今回、ミニマルなCSSフレームワーク Milligram を使って、個人事業主としてのWebサイトを作ってみたのですが、ある程度使い方を把握できたと思うので、紹介したいと思います。 特徴 高速でクリーンに開発をスタートするための、最低限のスタイルだけを提供するというスタンスで作られたCSSフレームワークです。 軽量(gzip圧縮で2KB) 必要最低限のコンポーネント群 テンプレートやテーマなどが存在しない ドキュメントも少なく、学習量も少ない 使い方 インストール インストール方法は、 こちら にあります。 npm/yarnなどを使う方法と、 bower install milligram npm install milligram yarn add milligram CDN を利用する方法があります。 <link rel="stylesheet" href=& Continue Reading

Posted On :
Category:

Flutterで別画面(route)で状態(state)を共有する

Flutter でお勉強時間管理用のタイマーアプリを作っているのですが、頻繁にタイマーの起動/停止し忘れが発生するので、手作業で経過時間を編集できるようにしました。 以下のように別画面で編集する作りなのですが、別画面(route)で上手く値をやり取りする必要があり、その実装方法を二つほど試したので紹介します。 StatefullWidget + 画面遷移時にパラメータ渡しする方法 一つ目の方法は、StatefullWidgetで遷移元画面(route)の状態(state)を管理しつつ、別画面に遷移する際にパラメータを渡す方法です。この方法だと遷移元画面の状態(state)が画面遷移時に破棄されるものだと思っていたのですが、maintainState=trueの設定であれば破棄されないようなので、結構使い勝手が良さそうです。 画面遷移の実装は、Flutter cookbook の Navig Continue Reading

Posted On :
Category:

Flutterで時間(時分秒)入力

Flutterで時間(時分秒)を入力するインターフェースの実装方法を調べたので軽く紹介します。 showTimePicker を使う 時間を入力する方法として最もメジャーなのが、showTimePicker()を使う方法だと思います。 ただし、showTimePicker()は、モーダルダイアログで時(hour)/分(minute)を入力してTimeOfDayを返す関数なので、秒(second)は入力できません。 デフォルト デフォルトでは以下のようなUIになります。 個人的には、このデフォルトUIは、 時(hour)を選んでいるのか分(minute)を選んでいるのか分かりにくい 0時を選べない というマイナスポイントがあると感じています。 該当部分の抜粋は以下の通りです(全文はこちら)。 TextButton( child: Text('edit', style: T Continue Reading

Posted On :
Category:

Flutter でバックグラウンドでも動くタイマーアプリを作った

少し前に会社のブログで以下の記事を書きました。 Flutterでお勉強時間管理用のタイマーアプリを作った このアプリには、「アプリがバックグラウンドに遷移するとタイマーが停止してしまう」という致命的な問題がありましたが、その対処方法が分かったので、紹介したいと思います。 問題点 アプリがバックグラウンドに遷移すると、アプリが一時停止してしまい、タイマーが止まってしまう。 対応方針 アプリがバックグラウンドに遷移したタイミングと、フォアグラウンドに復帰したタイミングで以下の処理を行う作戦でいこうと思います。 バックグラウドに遷移したタイミング その時点の時間を元に、ローカル通知をスケジュール登録する(ローカル通知はバックグラウンドでも時間がくれば実行される) バックグラウンドに遷移した日時を記録する フォアグラウンドに復帰したタイミング ローカル通知タイマーを停止する フォアグラウンドに復帰 Continue Reading

Posted On :
Category:

Flutterの環境構築

子供のお勉強用にちょっとしたネイティブアプリを作りたくなり、 Flutter で作ってみることにしました。 本記事は、公式の Get Started を見ながら、Android/iOS/Web のクロスプラットフォーム動作環境を構築して、サンプルアプリを軽く動かしてみるところまでの内容となっています。 Flutterの特徴 1つのコードベースで、クロスプラットフォーム(Android/MacOS/Windows/Linux/iOS/Web)で動作するアプリを作れる => 開発・運用・学習コストが小さい Google がリードする OSS => 開発が頻繁 独自のレンダリングエンジンを使っている => swiftやkotlinを使ったネイティブ開発より低速 一般的な端末固有機能は対応している => 全部対応してる訳ではなく、最新機能への対応も少し遅れる widget Continue Reading

Posted On :
Category:

初めてのDeno

ドキュメント 公式マニュアル ソースコード 特徴 Denoは、V8エンジンおよびRustで組まれた JavaScript と TypeScriptのランタイムで、Node.js を作成したライアン・ダール氏が、Node.js での後悔を改善する形で作成されたものらしいです。(詳しくは、こちら) 特徴としては以下が挙げられています。 セキュアである 明示的にしない限り、ファイル・ネットワーク・環境へアクセスできない 何もしなくても TypeScriptをサポートする 単一の実行ファイルをリリースする 依存関係インスペクタ(deno info)やコードフォーマッター(deno fmt)が組み込みユーティリティとして提供されている レビュー・動作確認済みの標準ライブラリが Deno Land で提供されている インストール brew install deno deno upgrade –ver Continue Reading

Posted On :
Category:

PostgreSQLにおけるjson/jsonb型の取り扱い

PostgreSQLには、JSONデータを管理する型としてjson型とjsonb型があります。 これらは登録は簡単なのですが、検索して利用する際は少し癖があるので、解説しようとお思います。 PostgreSQL version: v12.6 json型とjsonb型の違い ドキュメント から抜粋しました。 キー順序や重複を利用するような特殊ケースを除き、jsonb型を利用する方が良さそうです。 json型 jsonb型 入力テキストの正確なコピーを格納(空白、キー順序、重複キーなども保持) 入力テキストをパースした結果をバイナリ形式で格納(空白、キー順序は保持しない。重複キー重複キーは最後の値だけを保持) 利用時に再解析する必要があるため、利用時に時間がかかる 格納時にオーバヘッドがあるが、利用時は高速に利用できる インデックスをサポートしていない インデックスをサポートしている データ登 Continue Reading

Posted On :