私は不動産が大好きである。
日本では空き家問題が取りざたされているが、なぜ空き家を放置してしまうのだろうか。
空き家を持て余している方の大半以上が、「相続」ではないだろうか。
そしてなぜ放置してしまうのかと考えた時に、「面倒だから」という理由はよく聞こえてくるが、本当にそうだろうか・・・
それは「空き家に価値はないから売れない」という思い込みではないだろうか。
よく「その空き家いくらで売れるかチェック」みたいなものを見かけるが、それよりも取引実績に基づいたデータを見る方が説得力があるという仮説の下、「空き家流通促進ツール」としてのアプリを考えてみる。
目次
1.API操作説明
2.目的に応じたAPIの選定
3.フレームワークの選定(GPT調べ)
4.選定理由と次回記事
1.API操作説明
不動産情報ライブラリでは、Webサービスや研究開発等にご活用いただくため、不動産取引価格情報や地価公示・地価調査、国土数値情報等のデータを公開APIとして提供している。
HTTPリクエストヘッダーにサブスクリプションキーを入力して利用する。
詳細についてはリンク先を参照。⇒ API操作説明
【用意するもの】
・HTTPクライアントツール(Pythonの場合、requests等)
・サブスクリプションキー(APIキー)
2.目的に応じたAPIの選定
冒頭でも書いたとおり、今回のアプリを使うことにより、所有する空き家に価値があるという認識を持ってもらうことで、行動変容させることが目的である。
行動変容するためには、利用者へのインセンティブが必要であり、
今回の場合、「有価物として認識させる」ことが最も重要であり、そのためには自分が所有している空き家周辺での不動産取引の実績を見てもらうのが一番説得力があるんじゃないかと考える。
故に、必要な情報を以下のとおり定義する。
【必要な情報】
・都道府県名、市町村名 ⇒ 都道府県内市町村一覧取得API
・取引価格 ⇒ 不動産価格(取引価格・成約価格)情報取得API
今回は上記2つのAPIを使った「行動変容アプリ」を作成することとして進める。
3.フレームワークの選定
Pythonでよく使うフレームワークとして、Django、Flask、Streamlit等があるが、
ChatGPTさんに各々のフレームワークについて解説をお願いしてみる。
【Django】
フルスタックなPythonのウェブフレームワークで、大規模なウェブアプリケーション開発に適しています。主な特徴は以下の通りです。
1.フルスタックフレームワーク: テンプレートエンジン、データベース接続、管理インターフェースなど、ウェブ開発に必要な機能が一通り揃っています。
2.MTV(Model-Template-View)アーキテクチャ: アプリケーションの構成が整理されていて、保守性が高いです。モデルを使ってデータベースと連携し、ビューでビジネスロジックを処理し、テンプレートでHTMLを生成します。
3.セキュリティ: Djangoには、クロスサイトリクエストフォージェリ(CSRF)やSQLインジェクションといった一般的な脆弱性に対する保護機能が備わっています。
4.標準的な管理画面: Djangoには、モデルのデータを簡単に管理できる管理インターフェースが標準で用意されています。
【Flask】
Flaskは、軽量で柔軟なPythonのマイクロフレームワークで、特に小規模でシンプルなアプリケーションやプロトタイピングに向いています。主な特徴は以下の通りです。
1.マイクロフレームワーク: 必須の機能が少なく、必要に応じて拡張機能を追加できるため、柔軟性が高いです。
2.シンプルで直感的: シンプルなルーティング機能やテンプレートエンジン(Jinja2)を提供し、直感的にアプリケーションを構築できます。
3.拡張性: 必要な機能を自分で選んで追加する設計なので、データベースや認証、セッション管理なども自由に設定可能です。
FlaskはAPIサーバーの構築やシンプルなウェブサイト、シングルページアプリケーション(SPA)のバックエンドなどに適しており、小規模から中規模のプロジェクトで利用されます。
【Streamlit】
Streamlitは、データサイエンスや機械学習アプリケーションを簡単に構築できるPythonのライブラリで、特にインタラクティブなダッシュボードやデータの可視化を得意とします。主な特徴は以下の通りです。
1.データ可視化向けに最適化: データフレームやプロットなどを簡単にウェブ上に表示でき、短いコードでインタラクティブなビジュアライゼーションが作成できます。
2.素早いプロトタイピング: 複雑なHTMLやCSSの知識が不要で、Pythonコードだけで簡単にウェブアプリを構築できます。
3.UIコンポーネントの豊富さ: スライダーやボタン、セレクトボックスなどのUIコンポーネントが用意されており、ユーザーからの入力を容易に受け付けられます。
Streamlitは、データ分析や機械学習モデルの結果を視覚的に示すためのアプリや、チーム内で簡単にデータを共有するためのツールとして利用されることが多いです。
4.選定理由と次回記事
今回のアプリは試作品レベルのものを想定しており、特に重厚感あるフレームワークは必要ないため、Pythonだけで書けて、素早いプロトタイピングが可能な Streamlit とする。
次回、コーディング編を書いていく