こんにちは、Bootの三谷です。今回は、前回のBubbleで開発できることに引き続きBubbleでできないことを紹介します。私自身が開発できなかった経験や、一般的に開発できないとされていることを解説しています。Bubbleは開発できるできないのラインが不明確なツールです。(開発可能範囲が広すぎる)そのため、実際に開発前に試してみる、相談された時点で実験するということが少なくありません。本記事をご閲覧の方も、これはできるかできないかの相談はお気軽にご連絡ください。その場でエンジニアが返答いたします。
Bubbleとは
(公式サイト:https://bubble.io)
Bubbleはアプリケーション開発のための強力なツールであり、プログラミングの知識がなくても、ビジネスやプロジェクトの要件に合わせたカスタムアプリケーションを作成することができます。コーディングの知識がなくてもドラッグアンドドロップでコンポーネントを配置して、デザイン構築、データベース作成、機能追加ができます。
ubbleは、さまざまな業界やビジネス向けにカスタマイズされたアプリケーションを提供しています。機能強化のためのAPIの統合や、カスタムコードの埋め込みなど、拡張性も充実しています。また、マーケットプレイスを介してアプリケーションを共有したり、オンラインでチームと協力したりすることもできます。
Bubbleが苦手なアプリ
Bubbleは、ビジネスアプリケーションの開発に最適化されたプラットフォームであり、以下のような高度なアプリケーションの開発には適していない場合があります。
ゲーミフィケーション
Bubbleは、ゲームエンジンを提供しておらず、ゲーミフィケーションに必要な高度なグラフィックスや物理エンジンを提供することができません。例えば、グリーやWiiキャラクターのようなキャラクターが自由自在に動くといったサイトは開発することができません。(3Dファイルは設置できるため、一定の動きをする3Dファイルを設置し、マイページやプロフィール画面を充実させるという工夫はできます)
デザインにおけるハードルは一定数あり、例えばデフォルトで備わっているデザイン項目が画像のようになります。
ボタンであれば、文字色やフォントサイズ、太さ、行間やボタンカラー等が設定できます。(エディターに表示されていないですが、横幅や高さ、余白は1px単位で調整することができます。)一方で、ボタンをゲームエンジンで実装するようなボタン(ゲームの開始ボタンや、3Dライクなゲーム風ボタン等)は上からCSSコードを付与する必要があるため、Bubbleのデフォルト機能では実装できません。このようにデザイン領域では一定数のハードルはありますが、いわゆるWebサービスやアプリのデザインは問題なく実装することができます。(Bubble社としてもオーバースペックにしすぎないように、一定数のデザイン範囲を定めているように思われます)
高度なアルゴリズムを用いた検索サイト
Bubbleは、高度なアルゴリズムを使用するような検索サイトのような複雑なシステムの開発には適していません。 Bubbleは、複雑な計算やデータ処理に特化したプラットフォームではなく、基本的なデータベース操作やビジネスロジックの実装に適しています。実際に弊社で経験した事例として、50万レコード以上のデータベースから検索する、タイトルのみならず概要文や住所からの高速で検索したいというご要望がございました。Bubbleでは数万レコードの同時処理を得意としておらず動作が重くなる、また検索ロジックを複雑にできないことから、Algoliaという検索エンジンツールを用いて、Bubble製アプリに機能を導入しました。
Algoliaとは、ウェブ、モバイルアプリ、検索バー、およびデスクトップアプリなどに完全な検索機能を簡単に追加できるクラウド・ベースの検索サービスです。Bubbleと外部データベース連携の記事にてAlgoliaを紹介していますので気になる方はご覧ください。
ローレベルなアクセスやシステムの制御
Bubbleは、サードパーティのAPIやプラグインを使用することで、多くのシステムとの連携が可能ですが、ハードウェアやオペレーティングシステムの制御や直接的なローレベルのアクセスには適していません。ハードウェアと連携する際は、ハードウェア側でAPI用のサーバーを立てて、Bubbleと連携しやすい形(Restful APIで基本JSONでのやり取り)に別途システム開発する必要があります。
BubbleでAPI連携する際に用いる、API Connectorです。設定方法はBubble風の癖がありますが、基本的にどのAPIとも連携できます。最近ではChatGPT APIと連携し、ChatGPT搭載サービスを開発することができます。ただし、やはり外部でAPIサーバーを立てていただく必要があるため、新しいシステムや自社のシステムですぐに連携するということが難しい場合もございます。
大規模なデータ処理
Bubbleは、比較的小規模なデータ処理に適していますが、大規模なデータ処理や高負荷のトラフィックを処理する場合には、より専門的なプラットフォームが必要になる場合があります。目安としては、10万レコードを超えるデータベースを扱う場合は外部のデータベースツールを活用することを推奨しております。これらの制限を考慮して、Bubbleは、主にビジネスアプリケーションの開発に適しているとされています。Algoliaで紹介した記事ですが、外部データベースとの連携について解説しています。
実際にあった開発困難な機能
Bootが経験した開発が困難であった機能を紹介します。ほとんどの機能は開発できないわけではないですが、いわゆる無茶な要求を組んだ場合に起こった困難な機能です。
クリニック系予約管理アプリ
クリニック側のシフト、クリニック内のルームのシフトと連動して、5分刻みで予約ができる機能を導入したい。また予約時に表示するカレンダーはGoogleカレンダーのようにシンプルかつ使いやすくして欲しい。
上記の要望を整理すると、以下が困難な機能でした。
- 立場が異なる3つの日程を連携する
- 5分刻みで予約する
- Googleカレンダーのような操作性
一般的な開発でも同様ですが、予約管理アプリは複雑になりやすい傾向にあります。店舗やクリニックにあるシステムを1つに踏襲しがちになりやすく、システムが複雑化します。
立場が異なる3つの日程を連携する
こちらは、日程を同時に連携するような複雑なBubbleでは処理できませんでした。対処法としては、入力する優先順位を決めることでした。クリニック側のシフトを確立した後、ルームの調整、クリニック側のシフトが整ったあと、ユーザーが予約できるように整理することで対処しました。
5分刻みで予約する
60分刻みと5分刻みでは、管理するデータ量が12倍異なります。また細かく管理する必要が出てくるため、シフトが重なることが増えエラー時のシステムを増やす必要がありました。ここでは、クリニック側のシフトは1時間刻み、ユーザー側の予約を15分刻みに変更することで、データ量を減らしシステムをシンプルにしました。
Googleカレンダーのような操作性
Googleカレンダーはシンプルのようで、多数の機能が組み込まれています。またリアルタイム更新でカレンダー入力できます。一方でBubbleではカレンダーのデザインが制限されるためGoogleカレンダーのようなスムーズな動きを実装することは難しいです。また1つのアプリにGoogleカレンダーのような高度な機能を入れることは現実的ではないです。
ここでは、Googleカレンダーと連携することでBubble側で操作することを無くしました。
開発できない対処法
クライアント様の実現したいことを叶えることがBootの仕事ですが、技術的に、事業的に開発できないケースがあります。そこでよくある開発できないケースに対する対処法を紹介します。
要件定義時に開発できない旨を伝える
ほとんどの場合、開発を依頼される時点で開発できるかどうか判断できます。そのため、打ち合わせ時に開発できない旨を伝え、開発を続行するか、代替案を採用するか判断していただきます。多くのクライアント様にはありがたい話で、Bubbleでできない場合の対処法を検討していただいております。
開発規模を縮小する
事業のスケール段階を念頭に、機能を縮小することを提案する場合がございます。リリースする前に複雑すぎる機能を開発するべきではない、シンプルな機能でユーザーが使ってもらえるかを試しましょうと提案することがございます。これまでの開発経験から、開発規模を縮小した方がいい事例は多くございます。開発期間や費用を抑え、リリースから追加、修正する進め方を推奨しております。
開発できる機能については以下になります。
最後に
今回は2023年最新のBubbleで開発できないことを紹介しました。Bubbleは実装できる範囲が広すぎるため、何が開発できて何ができないかわかりづらいです。筆者自身Bubble開発は4年近く行っていますが、まだまだ奥が深く、これは開発できるかできないかは試してみないと分からない場面があります。(ご依頼前に実験することがよくあります)
年間20社以上のアプリを開発していますので、Bubbleで開発できるのか、実現できるのかなどお気軽にご相談ください。本記事の前編として、Bubbleで開発できることについても記事でまとめていますので、是非ご参考にしてください。
コメント