悪いエルフ: Adalo、DreamFactory、Flask、ダクトテープでクリスマスツリーをコントロール

悪いエルフ: Adalo、DreamFactory、Flask、ダクトテープでクリスマスツリーをコントロール

ソフトウェア開発のキャリアを通じて、デザインに苦労することが多かった私ですが、数ヶ月前にAdaloチームに参加してから、Adaloアプリビルダーを使ってユーザーインターフェースを作成・配線するのがいかに簡単かに驚愕しています。Adaloはデータベース駆動型ウェブアプリとネイティブiOS・Androidアプリ用のノーコードアプリビルダーで、3つのプラットフォーム全体で1つのバージョンがあり、Apple App StoreとGoogle Playに公開されます。正直なところ、これまでノーコードアプリビルダーは比較的シンプルなCRUD形式(作成、取得、更新、削除)アプリとダッシュボードの作成に限定されていると思っていました。

クリスマスが急速に近づいており、特に理由もなく物事を自動化するのが好きなオタクであるため、数日前にクリスマスツリーのライトをコントロールできるAdaloアプリを作成できるかどうか考え始めました。すでにスマートプラグで配線されており、キッチンのAlexaデバイスでも接続されているため、「Alexa、クリスマスツリーをつけて」というコマンドでオン・オフできますが、1つのホームオートメーション統合より良いものが知っていますか?2つです。以下は、Adalo、ダクトテープ、不適切な判断を使ってクリスマスツリーライト管理モバイルアプリを作成・起動するためのクエストのリキャップです。

このアプリは12月16日月曜日から始まる数日間利用可能で、私が家にいない(火災が怖い)、妻がこれを公開したことで私を絞め殺すと脅迫している、または発生する可能性のある明らかな技術的問題のため、定期的にオフラインになる可能性があります。以下のアドレスで確認してください https://xmas.wjgilmore.com

アプリの紹介

このアプリは創造的にAdalo XMASツリーアプリと呼ばれています。いくつかのテーマング、クリスマスライトを切り替えるための2つのボタン、アクションをリアルタイムで見ることができるYouTubeライブストリームで構成されています。しかし、これらのボタンは、ああ、これらのボタンはほぼ抵抗できないほどです。つい押してしまい、ツリーが応答して光るのを見たり、またもや暗くなるのを見て妻が唸るのを想像したりしてしまいます。

昨夜、私たちはAppleシリーズSiloのシーズン2を見ていて、未知のデジタル侵入者との死闘に陥りました。犯人が誰かは思い当たります(Allisonよ、あなただったのは知っているぞ!)が、とにかくツリーテロリストはそれをクリックして消します。そして私はそれを再びオンにします。数分後、グリンチが戻ってきて、ライトがまた消えます。そして私は再び勇敢に戦い返し、リビングルームを再び照らします。ヒーローは生まれるのではなく、ティンセルで鍛えられると言われており、私はそれの生きた証です。

これらのボタンを押すという考えであなたが涎を垂らしているに違いありません。さあ、試してください。以下のアドレスに行ってください https://xmas.wjgilmore.com そして押してみてください。 警告: これが私のISP、プログラミングエラー、または正直なところ妻によってオフラインに落とされる前にどのくらい利用可能になるかについて、私は見当がつきません。

Adaloクリスマスツリーアプリインターフェース
私のクリスマスツリーアプリ

Adaloがスマートホームアプリに適している理由

IoT制御アプリの構築は複雑に聞こえるかもしれませんが、Adaloのビジュアルビルダーはそれを驚くほど簡潔にします。プラットフォームは重い処理(ネイティブアプリのコンパイル、API統合、データベース管理)を処理し、あなたはクリスマスツリーを制御するボタンの設計などの楽しい部分に焦点を当てます。プラットフォーム上では、シンプルなユーティリティから複雑なビジネスアプリケーションまで、さまざまなプロジェクトの実績があります。 主な機能 プラットフォーム上では、シンプルなユーティリティから複雑なビジネスアプリケーションまで、さまざまなプロジェクトの実績があります。

Adaloがこの種のプロジェクトに特に適している理由は、簡単なAPI統合と直接アプリストアに公開する能力の組み合わせです。モバイル上で遅く感じるウェブラッパーを構築しているのではなく、世界中の誰かがあなたの休日の装飾を台無しにしようと決めたときに瞬時に応答する真のネイティブアプリを作成しています。

スマートプラグとの通信

2026年には照明を接続したり外したりするために腰を曲げることはできないため、私はTP-Link KP115スマートプラグを使用してAlexaを介してライトを制御しています。これはかなり簡単なプロセスですが、私の知識では、AlexaとひどいメーカーアプリケーションプログラムInterfaceの外でプラグと対話する公式な方法はありません。GitHubが救いに来ました!予想通り、親切なプログラマーはプラグ通信プロトコルをリバースエンジニアリングし、 python-kasaと呼ばれる便利なPythonパッケージにバンドルしました。python-kasaをインストールするには、以下を実行してください:

pip install python-kasa

インストール後、サポートされているデバイスのローカルネットワークを discover コマンドを使用して調査できます:

kasa discover

つまり、各デバイスに割り当てられたIPアドレスを簡単に識別できるだけでなく、それがオンになっているかどうか、オンまたはオフの状態がどのくらい続いているか、そして当月とリブート以降にどれだけの電力を消費したかを判断できます。かなりクール!

デバイスのIPアドレスがわかったら、オン・オフは簡単です:

kasa --host 192.168.1.100 on
kasa --host 192.168.1.100 off

APIの作成

最終的な目標は、このプラグをAdaloモバイルアプリで制御することでした。これは北極を含む世界中のどこからでもアクセスできる可能性があります。つまり、家庭用ネットワークから外部世界へのインターネット接続を開く必要があります。明確にしておきますが、正しい方法と間違った方法があります。私が示そうとしている方法は非常に間違っており、ホームインターネットサービスプロバイダーはこの方法でそれを行うために私たちの接続をおそらくシャットダウンするでしょう。

このAPIに必要なシンプルなバージョンは、私の推定では3つのエンドポイントが必要です:status、on、offです。statusエンドポイントはプラグがオンかオフかを教えてくれ、onとoffのエンドポイントは自明です。Flaskを使ってAPIを作成しましたが、非常に使いやすいことに気付きました。エンドポイントを作成するには、ルートURIを定義し、その直後のメソッドはそのエンドポイントが要求されたときに実行されます。

信じようと信じまいと、これは機能するFlask APIを作成するのに十分です:

from flask import Flask
app = Flask(__name__)

@app.route('/status')

このファイルを status.py または何か他の名前で保存し、次のようにFlaskサーバーを起動します:

flask —app status run

FlaskルートはデフォルトではGETリクエストであるため、ブラウザを開いて http://127.0.0.1:5000/status に移動してテストすることができます。構文エラーがないと仮定すると、文字列 hello がブラウザに表示されるのが見えるはずです。

私のプロジェクトの場合、APIエンドポイントがpython-kasaコマンドを実行する必要があったため、Pythonのsubprocessモジュールを使用してシェルコマンドを実行しました。このプロジェクトのために、私は物事を少し速く緩くプレイすることができます。ただし、同様のことを試みてパラメータをシェルコマンドに渡す必要がある場合 その前にデータを検証することが重要です 。このプロジェクトに使用される完全なFlaskスクリプトは以下の通りです:

from flask import Flask
import subprocess

app = Flask(name)

@app.route('/status')

@app.route('/on')

@app.route('/off')

外の世界と通信する

Flaskアプリが localhost で実行されていることに気付いたかもしれません。つまり、外部からはアクセスできません。このAPIを他の場所からアクセスできるようにするために、私は ngrokと呼ばれるサービスを使用します。ngrokはずっと昔から存在しており、長い話を短くすると、ローカル開発サーバーをインターネットに公開します(他にも多くのことを行います)。ngrokを使用して、ローカルサーバーのポート5000をngrok.appサブドメインに公開するのは、このコマンドを実行するのと同じくらい簡単です:

ngrok http 5000

これで、任意のネットワークから ngrok エンドポイントにアクセスして、API との間のリクエストを転送できるようになりました。

DreamFactory 経由のリクエストのプロキシ

セキュリティと柔軟性の両方の理由から、ngrok エンドポイントを DreamFactory 経由でルーティングしました。DreamFactory はエンタープライズグレードの REST API を素早く公開できるデータベースラッパーとして知られていますが、既存の API の機能を拡張するなど、その他のさまざまな興味深いことを行うことができます。既存の API の機能を拡張するなど、他にもさまざまな興味深いことができます。北極での現在の気温など、アプリに他の機能を統合することが最終的に楽しいかもしれないと思ったので、DreamFactory のスクリプト化されたサービスコネクタを使用しました。DreamFactory を使用するのは信じられないほど簡単です。スクリプト化されたサービスに新しいエンドポイントを追加するだけだからです。

DreamFactory のスクリプト化されたサービスコネクタは PHP、Python、NodeJS 言語をサポートしており、プラットフォームの PHP ベースの API に最も精通しているため、その言語を使用することにしました。

$api = $platform[‘api’];
$get = $api->get;
$post = $api->post;

$api->get('/status', function() {https://your-ngrok-url.ngrok.app/status');

$api->get('/on', function() {https://your-ngrok-url.ngrok.app/on');

$api->get('/off', function() {https://your-ngrok-url.ngrok.app/off');

$api->get('/temperature', function() {

例えば、Flask API を通じて公開されているものを拡張し、 /temperature エンドポイントを追加しました。このエンドポイントがリクエストされると、「Freezing」が返されます。

これらの変更を保存した後、DreamFactory API にロールベースのアクセス制御を追加してから、API キーを生成しました。DreamFactory API エンドポイントは、セキュアな HTTP ヘッダー経由で提供される API キーを提供することによってのみアクセス可能になります。

API と Adalo アプリの統合

Adalo ビルダーのお気に入りの機能の 1 つは、ユーザーアクションにイベントを簡単に結び付けることができることです。たとえば、「ツリーをオンにする」ボタンをクリックすると、 /on エンドポイントへの API 呼び出しが発生する必要があります。これは、ボタンに「アクション」を追加し、そのアクションを実行するために発生する必要があるイベントの種類を指示するだけで簡単に実現できます。さらに、このスクリーンショット(実際のアプリから取得)に示すように、複数のアクションを定義できます。

Adaloボタンアクション設定
ボタンクリックへのイベントの結び付け

API 呼び出しは、前述の DreamFactory エンドポイントに送信されます。繰り返しになりますが、HTTP ヘッダー経由で API キーを渡すことでコールが保護されます。このコールの定義は、シンプルな Web ウィザードを使用して実現され、そのうちの 1 つのステップを以下のスクリーンショットに示します。

Adalo APIコール設定ウィザード
API 呼び出しの定義

このような視覚的な API 統合アプローチにより、Adalo のプラットフォームが非常にアクセス可能に感じられます。フェッチリクエストを記述したり、CORS エラーをデバッグしたりするのではなく、技術的な複雑さを処理するウィザードをクリックして進めていきます。プラットフォームの 3~4 倍の速度向上 Adalo 3.0 インフラストラクチャのオーバーホール以降、これらの API 呼び出しは迅速に実行されるため、世界中の反対側でハードウェアを制御する場合でもアプリの応答性が保たれます。

ライトトグル頻度のカウント

ユーザーがライトをオンとオフにした回数を追跡しておくと楽しいと思いました。ローカル Flask API 内で SQLite を使用してこれを行うこともできましたが、このタリーをアプリに近い場所に保つことが理にかなっていると思ったので、代わりに Adalo の Collections 機能を使用しました。

という名前の単一のコレクションを作成しました。 counts 4 つのフィールドで構成されます:ID(通常の自動インクリメント主キー)、名前( on さらに offの文字列を保存)、および通常のタイムスタンプです。通常の注意事項がここに適用されます。おそらくこれをもう少し効率的に設定できたかもしれませんが、プロジェクトを突き進んでいます。テーブルに保存されたいくつかのレコードの例を次に示します。

Adaloコレクションデータビュー
ライトのオンオフ時間の追跡

注目すべき点の 1 つ:Adalo の有料プランには 無制限のデータベースレコードが含まれるようになったため、このばかばかしいクリスマスプロジェクトがストレージ上限に達することを心配する必要がありません。数百のライトトグルを追跡する場合でも、数百万のユーザーインタラクションにスケーリングする場合でも、プラットフォームは追加料金やレコード制限なしで対応します。

結果をグラフ化する

DreamFactory の Nic がトグル頻度を描写するグラフの作成を提案しました。これを実装するためにカスタムコードを記述したくはありませんでしたが、Adalo コレクションからデータをエクスポートするのは簡単なので、そうしてから、ChatGPT にサンプルグラフと一緒にアップロードしました。

ChatGPTチャート生成プロンプト
ChatGPT を使用してグラフを生成する

はい、最近は AI と話すときはいつも丁寧にしています。私個人としては、ロボットの支配者を歓迎し、感謝しています。ただし、グラフの出来栄えが気に入らなかったため、さらに数回試行した後、代わりに円グラフを作成するよう依頼しました。

オン/オフトグル分布を示す円グラフ
かなりのエルフシンパがいるようです

YouTube ライブストリームの設定

YouTube ライブストリームの設定は本当に簡単でした。Adalo の YouTube マーケットプレイスコンポーネントを使用し、ライブストリーム URL を貼り付けただけで、それが機能しました。さらに、この楽しい YouTube Studio インターフェースを使用してライブストリームのステータスを監視できます。

YouTube Studioライブストリームインターフェース

マーケットプレイスコンポーネントエコシステムは、開発時間を節約する機能の 1 つです。YouTube の埋め込み API を理解し、デバイス全体でのレスポンシブサイジングを処理する代わりに、ドラッグ、ドロップ、構成するだけです。コンポーネントがその他を処理し、Adalo がネイティブコードにコンパイルするため、ビデオ再生は iOS と Android の両方でスムーズに機能します。

アプリアイコンの作成

私はまったくデザインスキルがないため、 DALL-E に生成させるだけです。「モバイルアプリ用の 1024 x 1024 ピクセルのアイコンを作成してください。これはクリスマスツリーのライトを制御するために使用されます」というプロンプトを使用しました。DALL-E は寸法を無視して、スクリーンショットにある 2 つのオプションを作成しました。

DALL-Eで生成されたアプリアイコンオプション
DALL-E を使用してアプリアイコンを生成する

時間の都合上、最初に作成したアイコンを選択し、Mac にダウンロードしてから、macOS の背景を削除する機能を使用して背景グラデーションを削除しました。

macOSの背景削除機能
macOS を使用して画像の背景を削除する

AdaloのビルダーであるAdaは、あなたが何を望んでいるかを説明してアプリを生成することができます。Magic Startは説明からアプリの基盤全体を作成し、Magic Addは自然言語を通じて機能を追加します。

この AI 生成アセットと Adalo のビジュアルビルダーの組み合わせは、最新のアプリ開発アプローチを表しています。何かが機能し、楽しいものを作成するためにデザイナーまたは開発者である必要はありません。プラットフォームの AI 機能 Builder はこれをさらに進めます。2026 年初頭には、プロンプトベースのアプリ作成が約束されており、自分が何を望んでいるかを説明でき、プラットフォームはスクリーン、ロジック、データベース構造を自動的に生成できます。 Magic Start さらに Magic Add.

公開とパフォーマンス

このプロジェクトの注目すべき側面の1つは、Adaloがアイデアから公開されたアプリまでのパスをいかにシームレスに処理するかです。このプラットフォームは単一のコードベースからApple App StoreとGoogle Play Storeの両方に直接公開します。これはアプリの起動で最も難しい部分です。証明書、プロビジョニングプロファイル、ストアガイドラインに対処することです。Adaloはこれを自動的に処理します。

このプロジェクト全体を通じて、アプリのパフォーマンスは堅牢でした。2025年後期のAdalo 3.0インフラストラクチャオーバーホール以来、プラットフォームは実行されています 3~4倍高速 以前よりも高速で、アプリのニーズに応じてスケーリングするモジュラーインフラストラクチャを備えています。くだらないクリスマスプロジェクトにはやり過ぎに見えるかもしれませんが、ボタンの押下が瞬時に登録され、複数の人が同時にツリーのライトを巡って争っている場合でも、ライブストリームが遅延なく読み込まれることを意味します。

Adaloの価格設定により、このようなプロジェクトがアクセスしやすくなります。開始価格は 月額36ドル 無制限の使用とレコード上限なしで、予期しない料金による請求ショックを心配することなく自由に実験できます。これをBubble(月額69ドルから始まり、使用量ベースのワークロードユニットとレコード制限あり)やGlide(App Store公開をサポートしていない)などの代替品と比較すると、バリュープロポジションが明確になります。

結論

これは非常に楽しいプロジェクトで、私の子供と近所の人を笑わせ、妻を終始苛立たせました。時々、最高のプロジェクトは、笑いを得る以外に実際の目的を持たないものです。このテキストを読む時点で、私の家が焼けていないといいのですが。

後のポストで、開発中に浮上した他の面白いことのいくつかを文書化するかもしれません。例えば Treehouse講師Laura Coronel ユーザーインターフェースと相互作用し、ツリーのライトを1分間に100回切り替えるための自動スクリプトを作成しました。Adaloのインフラストラクチャがその種の高速連続相互作用を難なく処理できたという事実は、プラットフォームの信頼性を示しています。これは、休暇中に配偶者を悩ませるためだけに存在するプロジェクトにとってさえそうです。

Adaloを他のアプリ構築ソリューションより選ぶ理由は何ですか?

Adaloは、単一のコードベースから真のネイティブiOSおよびAndroidアプリを作成するAI搭載アプリビルダーです。Webラッパーと異なり、ネイティブコードにコンパイルされ、Apple App StoreおよびGoogle Play Storeに直接公開されます。有料プランで無制限のデータベースレコードがあり、使用量ベースの料金がないため、予測可能な価格設定で請求ショックを回避できます——アプリの起動で最も難しい部分が自動的に処理されます。

Adaloは、単一のコードベースから本物のネイティブiOSおよびAndroidアプリを作成するAIを搭載したアプリビルダーです。ウェブラッパーとは異なり、ネイティブコードにコンパイルされ、Apple App StoreとGoogle Play Storeの両方に直接公開されます。アプリの起動で最も難しい部分を自動的に処理します。有料プランでは無制限のデータベースレコードを備えており、使用量ベースの料金がないため、予期しないコストなしにビルドおよびスケーリングできます。

AdaloのドラッグアンドドロップインターフェイスとAIアシスト構築により、数ヶ月ではなく数日でアイデアから公開アプリまでたどり着くことができます。Magic Startはシンプルな説明から完全なアプリ基盤を生成し、プラットフォームは複雑なApp Store送信プロセスを処理するため、証明書とプロビジョニングプロファイルではなく、機能とユーザーエクスペリエンスに集中できます。

AdaloのドラッグアンドドロップインターフェースとAI支援ビルディングにより、数ヶ月ではなく数日でアイデアから公開されたアプリまで進むことができます。このプラットフォームは複雑なApp Store提出プロセス(証明書、プロビジョニングプロファイル、ストアガイドライン)を処理するため、Appleの要件に対処する代わりに、アプリの機能に集中できます。

Adaloで外部APIとスマートホームデバイスを簡単に統合できますか?

はい、Adaloは簡単なウェブウィザードを通じて、ボタンクリックなどのユーザーアクションにAPI呼び出しを結びつけることが簡単です。DreamFactory、カスタムFlask API、またはセキュアなHTTPヘッダーを備えた任意のRESTエンドポイントなどのサービスに接続できます。コーディングは不要です。

Adaloでボタンアクションとユーザーインタラクションを追加するにはどうすればよいですか?

ボタンアクションの追加は非常に簡単です。任意のボタンに「アクション」を追加し、それをトリガーするイベントを指定するだけです。ボタンごとに複数のアクションを定義できます。例えば、API呼び出しとデータベースレコードの更新を同時に実行します。これにより、コーディング経験がなくても、実世界の機能を備えたインタラクティブアプリの作成が簡単になります。

Adaloアプリでデータを保存および追跡できますか?

はい、Adaloには、データベーステーブルを作成してデータを保存および追跡できるコレクション機能が含まれています。カスタムフィールド、タイムスタンプ、リレーションシップを使用して、コレクションを簡単にセットアップしてからデータをいつでもエクスポートできます。有料プランには無制限のデータベースレコードが含まれているため、ストレージキャップに達することはありません。

Adaloアプリに動画またはライブストリームを埋め込むにはどうすればよいですか?

Adaloは、動画の埋め込みを非常に簡単にするYouTubeコンポーネントを含むマーケットプレイスコンポーネントを提供しています。YouTubeマーケットプレイスコンポーネントをスクリーンに追加し、動画またはライブストリームURLを貼り付けるだけで、すぐに動作します。カスタムコーディングは不要です。

Adaloで専門的に見えるアプリを作成するために設計スキルが必要ですか?

いいえ、すばらしく見えるアプリを作成するために設計スキルは必要ありません。プラットフォームには、テーマ機能と事前構築されたコンポーネントが含まれており、磨かれたインターフェースを作成するのに役立ちます。DALL-Eなどのツールを使用して、カスタムアプリアイコンとグラフィックスを生成することもできます。

Adaloを使用してIoT制御アプリを構築するのにどのくらいの費用がかかりますか?

Adaloの有料プランは月額36ドルから始まり、無制限の使用とレコード上限がありません。これには、Apple App StoreとGoogle Play Storeの両方に公開する機能が含まれています。これをBubble(月額69ドルの使用量ベースの料金)またはFlutterFlow(ユーザーあたり月額70ドルに加えて別のデータベース費用)などの代替品と比較してください。

Adaloは高トラフィックと迅速なユーザーインタラクションを処理できますか?

はい、2025年後期のAdalo 3.0インフラストラクチャオーバーホール以来、プラットフォームは3~4倍高速で実行され、月間アクティブユーザー数が数百万のアプリをサポートするようにスケーリングするモジュラーインフラストラクチャを備えています。このアーキテクチャは高速連続インタラクションでもパフォーマンスを維持します。

Adaloはアプリビルディングに対してどのようなAI機能を提供しますか?

Adaloは現在、Magic Start(説明から完全なアプリ基盤を生成)とMagic Add(自然言語リクエストから機能を追加)を提供しています。2026年初頭予定のAI機能Builder は、開発プロセス全体にわたる完全なプロンプトベースのアプリ作成および編集を可能にします。

事前作成されたアプリテンプレートの1つを使用して、アプリを素早く構築

コードなしで構築を開始

関連コンテンツ