4DでiOSアプリを開発する
+4
hosaka
Ota
ozaki
miyako
8 posters
4DでiOSアプリを開発する
はじめに
以下に述べるのは,会社の公式見解ではなく,個人的な意見です。
先日,デベロッパー・カンファレンスの質疑応答で「4DだけでiOSアプリを開発できるようにしてほしい」という意見が挙げられました。こうした質問がイベント会場で聞かれるのは,今回が初めてではありません。私自身,これまで何度も同じ質問を受けてきました。立場上,そのようなときに本音を述べるわけにもいかず,大抵は言葉を濁すことになります。
しかし,心の中に浮かぶのは,次のような問いかけです。
なぜ4Dでなければならないのですか。
他の開発ツールと比較して,4Dにどんなアドバンテージがあるとお考えですか。
私自身,iPhone OS 3 (2009年) のころに少しiOS開発をかじっただけで,近年の動向に通じているわけではありません。それでも,ハッキリわかることがあります。それは,4DとiOSには,まったく共通点がない,ということです。
4Dデベロッパーが慣れ親しんでいるツール群(ストラクチャエディター/フォームエディター/メソッドエディター)は,iOSアプリに「翻訳」できる点がひとつもありません。また,4Dアプリケーションの構成要素(フォーム・メソッド・イベント・コマンド・カレントセレクション・プロセス)に該当するものは,iOSアプリにみあたりません。「4DでiOSアプリを開発する」は,いささか突拍子もない発想だとは思いませんか。
世の中には,iOSアプリを開発するためのツールがいろいろ出回っています。
(React Native, PhoneGap, Titanium, Steroids, Ionic, Xamarin...)
敢えて4Dに拘る理由は何でしょうか。
前述したように「4DでiOSアプリを開発する」といっても,4D特有の概念は一切,iOSのおいてまったく意味をなさないわけですから,結局のところ,言語は別,レイアウトは別,データベースも別,といった具合に,すべて4Dとは違う方法で開発するしかありません。その時点で,もう「4Dで開発している」とはいえないでしょう。
もし,「4DでiOSアプリを開発する」方法があるとすれば,それは4Dの「テキスト書き出し」機能を利用し,前述した開発プラットフォームいずれか(あるいはX Code)のプロジェクトファイルを書き出す,というものです。
たとえば,フォームはnibファイルまたはHTMLに,データベースはCoreData(SQLiteバックエンド)の定義ファイルとして書き出すことができるかもしれません。しかし,メソッドなど,アプリケーションを構成する要素の大半は,実際のiOS用開発プラットフォームで仕上げる必要があります。繰り返しますが,4Dのプログラミング言語は,iOSと概念的にまったく適合性がないので,iOSのプログラミングには役立ちません。
そこでデベロッパー各位にお尋ねしたいことがあります。
もし「4DでiOSアプリを開発する」としたら,どのプラットフォームで「仕上げ」をするのが良いと思いますか。
以下に述べるのは,会社の公式見解ではなく,個人的な意見です。
先日,デベロッパー・カンファレンスの質疑応答で「4DだけでiOSアプリを開発できるようにしてほしい」という意見が挙げられました。こうした質問がイベント会場で聞かれるのは,今回が初めてではありません。私自身,これまで何度も同じ質問を受けてきました。立場上,そのようなときに本音を述べるわけにもいかず,大抵は言葉を濁すことになります。
しかし,心の中に浮かぶのは,次のような問いかけです。
なぜ4Dでなければならないのですか。
他の開発ツールと比較して,4Dにどんなアドバンテージがあるとお考えですか。
私自身,iPhone OS 3 (2009年) のころに少しiOS開発をかじっただけで,近年の動向に通じているわけではありません。それでも,ハッキリわかることがあります。それは,4DとiOSには,まったく共通点がない,ということです。
4Dデベロッパーが慣れ親しんでいるツール群(ストラクチャエディター/フォームエディター/メソッドエディター)は,iOSアプリに「翻訳」できる点がひとつもありません。また,4Dアプリケーションの構成要素(フォーム・メソッド・イベント・コマンド・カレントセレクション・プロセス)に該当するものは,iOSアプリにみあたりません。「4DでiOSアプリを開発する」は,いささか突拍子もない発想だとは思いませんか。
世の中には,iOSアプリを開発するためのツールがいろいろ出回っています。
(React Native, PhoneGap, Titanium, Steroids, Ionic, Xamarin...)
敢えて4Dに拘る理由は何でしょうか。
前述したように「4DでiOSアプリを開発する」といっても,4D特有の概念は一切,iOSのおいてまったく意味をなさないわけですから,結局のところ,言語は別,レイアウトは別,データベースも別,といった具合に,すべて4Dとは違う方法で開発するしかありません。その時点で,もう「4Dで開発している」とはいえないでしょう。
もし,「4DでiOSアプリを開発する」方法があるとすれば,それは4Dの「テキスト書き出し」機能を利用し,前述した開発プラットフォームいずれか(あるいはX Code)のプロジェクトファイルを書き出す,というものです。
たとえば,フォームはnibファイルまたはHTMLに,データベースはCoreData(SQLiteバックエンド)の定義ファイルとして書き出すことができるかもしれません。しかし,メソッドなど,アプリケーションを構成する要素の大半は,実際のiOS用開発プラットフォームで仕上げる必要があります。繰り返しますが,4Dのプログラミング言語は,iOSと概念的にまったく適合性がないので,iOSのプログラミングには役立ちません。
そこでデベロッパー各位にお尋ねしたいことがあります。
もし「4DでiOSアプリを開発する」としたら,どのプラットフォームで「仕上げ」をするのが良いと思いますか。
miyako- 投稿数 : 483
登録日 : 2016/07/05
Re: 4DでiOSアプリを開発する
やっと登録したので、久しぶりに
苦労しますねえ。開発者ではなくエンドユーザーからも言われそうです。
・今動いているんだから、iOSやAndoroid上でも動くでしょ....
・だってあなた方プロでしょ...
・EXCELだって動くようになったじゃんない...
・そこんとこはピッと押してパッとすればいいんじゃないの...
・4Dのレイアウトなんて僕(私)でもできるし...
・その金額おかしくない、iPhoneで動くようにするだけだよね...
キリがないのでここら辺でやめときます
・「4DだけでiOSアプリを開発できるようにしてほしい」
>無理と思います。少なくとも私は今の4DでiOS用アプリを開発することを想定・希望していません
>FileMakerGoのような別アプリを想定しての質問なんだろうか?
>iOSアプリ=ネイティブもしくはハイブリッドと想像するのだけど違うことを希望しているのだろうか?
・「他の開発ツールと比較して,4Dにどんなアドバンテージがあるとお考えですか?」
>思いつきません
>正直に言えばWEBアプリ(iOSアプリではない)と言われた時も4D以外の選択肢が浮かびます
(4Dで開発できない・しないわけではないです)
・「「4DでiOSアプリを開発する」としたら,どのプラットフォームで「仕上げ」をするのが良いと思いますか」
>投稿にある「頑張る再利用」をしてもどうかなあ
>どのプラットフォーム?はどのような構成にするのかを含めた好みの問題ですよね
「4DだけでiOSアプリを開発できるようにしてほしい」を「すでにある4Dを最大限利用したい」(例えば、データは一元管理したい、ロジックを再開発したくない)と読み替えることができるのであれば、4Dをデータベース(ロジックを含む << ここ大切)サーバーとして生かし、REST、JSONなどで通信するようにすればいいのではないでしょうか(1つの案です)?当然ですがiOSアプリ(4Dで言うレイアウトを含む)は別途、4D以外のもので作ることになります。それ以上を今の4Dに求めることは無理なんじゃないかなと思います。誤解がないように補足しますが、4Dが悪いと言っているわけではなく、生い立ちを含め、開発の方向性・目的等が全く違うのだからという意味です。また、この方法を取ってもユーザーが希望するスペックを満たせる補償もありません。
難しい質問と言うよりは困った質問なのかもしれません。
尾崎
苦労しますねえ。開発者ではなくエンドユーザーからも言われそうです。
・今動いているんだから、iOSやAndoroid上でも動くでしょ....
・だってあなた方プロでしょ...
・EXCELだって動くようになったじゃんない...
・そこんとこはピッと押してパッとすればいいんじゃないの...
・4Dのレイアウトなんて僕(私)でもできるし...
・その金額おかしくない、iPhoneで動くようにするだけだよね...
キリがないのでここら辺でやめときます
・「4DだけでiOSアプリを開発できるようにしてほしい」
>無理と思います。少なくとも私は今の4DでiOS用アプリを開発することを想定・希望していません
>FileMakerGoのような別アプリを想定しての質問なんだろうか?
>iOSアプリ=ネイティブもしくはハイブリッドと想像するのだけど違うことを希望しているのだろうか?
・「他の開発ツールと比較して,4Dにどんなアドバンテージがあるとお考えですか?」
>思いつきません
>正直に言えばWEBアプリ(iOSアプリではない)と言われた時も4D以外の選択肢が浮かびます
(4Dで開発できない・しないわけではないです)
・「「4DでiOSアプリを開発する」としたら,どのプラットフォームで「仕上げ」をするのが良いと思いますか」
>投稿にある「頑張る再利用」をしてもどうかなあ
>どのプラットフォーム?はどのような構成にするのかを含めた好みの問題ですよね
「4DだけでiOSアプリを開発できるようにしてほしい」を「すでにある4Dを最大限利用したい」(例えば、データは一元管理したい、ロジックを再開発したくない)と読み替えることができるのであれば、4Dをデータベース(ロジックを含む << ここ大切)サーバーとして生かし、REST、JSONなどで通信するようにすればいいのではないでしょうか(1つの案です)?当然ですがiOSアプリ(4Dで言うレイアウトを含む)は別途、4D以外のもので作ることになります。それ以上を今の4Dに求めることは無理なんじゃないかなと思います。誤解がないように補足しますが、4Dが悪いと言っているわけではなく、生い立ちを含め、開発の方向性・目的等が全く違うのだからという意味です。また、この方法を取ってもユーザーが希望するスペックを満たせる補償もありません。
難しい質問と言うよりは困った質問なのかもしれません。
尾崎
ozaki- 投稿数 : 1
登録日 : 2016/08/01
Re: 4DでiOSアプリを開発する
こういった場所で色々意見交換ができるのはいいですね!
JUG再開に感謝です。
お客様から4Dの既存システムをiOSで使えるようにして欲しいとリクエストを受けた場合、
基本的にはiOSアプリではなく、4DをWebにして提供するようにしています。
アプリにしたことがあるのは、Push通知、カメラでQRコード読み取りなどが必要な場合でしたが、
アプリはWebエリアにして中身は4DのWebで作りました。
JUG再開に感謝です。
お客様から4Dの既存システムをiOSで使えるようにして欲しいとリクエストを受けた場合、
基本的にはiOSアプリではなく、4DをWebにして提供するようにしています。
アプリにしたことがあるのは、Push通知、カメラでQRコード読み取りなどが必要な場合でしたが、
アプリはWebエリアにして中身は4DのWebで作りました。
Ota- 投稿数 : 18
登録日 : 2016/07/22
Re: 4DでiOSアプリを開発する
こんにちわ。
4DでiOS開発のメリットは十分あると思いますよ。
iOSのアプリを開発して公開するには、デベロッパー契約をしないといけないのですが。法人契約が確か結構敷居が高かったと思います。
客先納品だとお客様にも同様にデベロッパー契約を行ってもらわないといけないので2度同じことを行わないといけません。
運良く開発までこぎつけたとしても次には、アプリに署名をした上で公開審査があります。(最近は厳しいらしいです。しょぼすぎてもダメですし、バグだらけでもダメです。全てリジェクトされます。それも英語で...)
どう考えてもMac/PCで4Dを使って開発する工数の何倍もかかります。
そもそもアプリは一般公開が前提なので、企業向けのカスタマイズアプリが作りづらいです。(方法がないわけではないようですがここでは割愛します。)
これらを4Dがプラットフォームになって、担ってくれるだけでも全然違うと思います。
イメージ的にはFileMakerGOですかね。ランタイム動作のみ。おそらくスタンドアロンは不要だと思います。4Dとの連携が前提ですから必然的にC/S構成になります。
そもそもiPhoneのあの画面でPC並みのインターフェイスは期待できませんし独自インターフェイスがあるので、PCとは別のエディタがあればそれで良いと思います。
機能としてもある程度限定されていても問題ないかと思います。
要望としては普通のwebアプリではできないカメラなどのハードウェアをコントロールできることでしょうか。
4DでiOS開発のメリットは十分あると思いますよ。
iOSのアプリを開発して公開するには、デベロッパー契約をしないといけないのですが。法人契約が確か結構敷居が高かったと思います。
客先納品だとお客様にも同様にデベロッパー契約を行ってもらわないといけないので2度同じことを行わないといけません。
運良く開発までこぎつけたとしても次には、アプリに署名をした上で公開審査があります。(最近は厳しいらしいです。しょぼすぎてもダメですし、バグだらけでもダメです。全てリジェクトされます。それも英語で...)
どう考えてもMac/PCで4Dを使って開発する工数の何倍もかかります。
そもそもアプリは一般公開が前提なので、企業向けのカスタマイズアプリが作りづらいです。(方法がないわけではないようですがここでは割愛します。)
これらを4Dがプラットフォームになって、担ってくれるだけでも全然違うと思います。
イメージ的にはFileMakerGOですかね。ランタイム動作のみ。おそらくスタンドアロンは不要だと思います。4Dとの連携が前提ですから必然的にC/S構成になります。
そもそもiPhoneのあの画面でPC並みのインターフェイスは期待できませんし独自インターフェイスがあるので、PCとは別のエディタがあればそれで良いと思います。
機能としてもある程度限定されていても問題ないかと思います。
要望としては普通のwebアプリではできないカメラなどのハードウェアをコントロールできることでしょうか。
hosaka- 投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪
>4DでIOSアプリを開発する
>「4DだけでiOSアプリを開発できるようにしてほしい」
4DサーバーにiPhoneからログインしてデータを見たり入力したりしたい、という欲望はいつも感じます。WEBベースではなくて。
TAKMAC
4DサーバーにiPhoneからログインしてデータを見たり入力したりしたい、という欲望はいつも感じます。WEBベースではなくて。
TAKMAC
TAKMAC- 投稿数 : 8
登録日 : 2016/07/16
Re: 4DでiOSアプリを開発する
私も保坂さんのおっしゃってるような事情で、デベロッパー自身がiアプリを企業向けのカスタマイズアプリとして作って納品するというのは非現実的だと思います。
また、同様に4D社がランタイムアプリとして機能するiOSクライアントを提供する案に大賛成です
実際、データを素早く閲覧し、部分的な編集・入力をカバー出来れば十分だと思いますので、
初期リリース版では絞り込んだフォームテンプレートから選択するようなウィザード式のデザインモードでも良いかと。
あと、私も要望を言わせてもらえるならば、間欠的通信環境への対応でしょうか。
動体デバイス上で動作するアプリケーションですので、時々刻々と変化する電波状況に対応出来ないと思わぬデータ破壊や不意のリソースロックが起きかねません。従って、
理想的にはオフラインモードとオンラインモードの両方での動作が可能であり、両モード間をシームレスにスイッチ出来れば完璧ですが、欲張り過ぎですかね
あー、ところで、保坂さん
これって、UIImagePickerController相当の機能範囲じゃなくて、CoreMedia、CoreVideo直接叩くような機能ですか?
単に写真取ったり、ロールから写真取ってきたり、動画撮影したりは、ユーザにカメラアプリ相当のインターフェイスを触らせてあげればOKなので、その範囲で出来る事はiOS6以降のモバイルSafariでも出来るようになってますよね?
そうじゃなくて、もっとローレベルにシャッター押すタイミングとか絞りとかを4Dから制御して、超クールな写真や映像作っちゃうぜ的な感じですか? そりゃ結構タフなリクエストですね (オフラインモード対応しろとか言ってる自分の事は棚に上げてスイマセン )
カメラ以外のハードウェアでも、スマホとブラウザの前提条件を好きに決められれば結構Webアプリでも対処出来るんですよ。
例えば、
などのセンサー系は、ほぼ各々に対応するAPIやEventがHTML5でカバーされてますし
のようなアクチュエータを直接制御するようなことまで出来ます。
まぁ、でも、こういうのが4Dのイベントとして取れて、4Dのコマンドで出来るんなら、
確かに諸手を上げて4Dバンザイ と言いながら4Dで開発するだろうなー
保坂さんのおっしゃってるのは、きっとそういうニュアンスなんですね
さて、仕事に戻ります。
失礼致しました。
また、同様に4D社がランタイムアプリとして機能するiOSクライアントを提供する案に大賛成です
実際、データを素早く閲覧し、部分的な編集・入力をカバー出来れば十分だと思いますので、
初期リリース版では絞り込んだフォームテンプレートから選択するようなウィザード式のデザインモードでも良いかと。
あと、私も要望を言わせてもらえるならば、間欠的通信環境への対応でしょうか。
動体デバイス上で動作するアプリケーションですので、時々刻々と変化する電波状況に対応出来ないと思わぬデータ破壊や不意のリソースロックが起きかねません。従って、
理想的にはオフラインモードとオンラインモードの両方での動作が可能であり、両モード間をシームレスにスイッチ出来れば完璧ですが、欲張り過ぎですかね
あー、ところで、保坂さん
hosaka wrote:要望としては普通のwebアプリではできないカメラなどのハードウェアをコントロールできることでしょうか。
これって、UIImagePickerController相当の機能範囲じゃなくて、CoreMedia、CoreVideo直接叩くような機能ですか?
単に写真取ったり、ロールから写真取ってきたり、動画撮影したりは、ユーザにカメラアプリ相当のインターフェイスを触らせてあげればOKなので、その範囲で出来る事はiOS6以降のモバイルSafariでも出来るようになってますよね?
そうじゃなくて、もっとローレベルにシャッター押すタイミングとか絞りとかを4Dから制御して、超クールな写真や映像作っちゃうぜ的な感じですか? そりゃ結構タフなリクエストですね (オフラインモード対応しろとか言ってる自分の事は棚に上げてスイマセン )
カメラ以外のハードウェアでも、スマホとブラウザの前提条件を好きに決められれば結構Webアプリでも対処出来るんですよ。
例えば、
- GPS(位置、高度、速度)センサー
- ジャイロセンサー
- 加速度センサー
- 照度センサー(FFのみ)
- 近接センサー(FFのみ)
などのセンサー系は、ほぼ各々に対応するAPIやEventがHTML5でカバーされてますし
- バイブレーション(Mobile Safari以外)
のようなアクチュエータを直接制御するようなことまで出来ます。
まぁ、でも、こういうのが4Dのイベントとして取れて、4Dのコマンドで出来るんなら、
確かに諸手を上げて4Dバンザイ と言いながら4Dで開発するだろうなー
保坂さんのおっしゃってるのは、きっとそういうニュアンスなんですね
さて、仕事に戻ります。
失礼致しました。
角谷泰志- 投稿数 : 4
登録日 : 2016/07/12
所在地 : 東京
Re: 4DでiOSアプリを開発する
角谷泰志 wrote:これって、UIImagePickerController相当の機能範囲じゃなくて、CoreMedia、CoreVideo直接叩くような機能ですか?
単に写真取ったり、ロールから写真取ってきたり、動画撮影したりは、ユーザにカメラアプリ相当のインターフェイスを触らせてあげればOKなので、その範囲で出来る事はiOS6以降のモバイルSafariでも出来るようになってますよね?
そうじゃなくて、もっとローレベルにシャッター押すタイミングとか絞りとかを4Dから制御して、超クールな写真や映像作っちゃうぜ的な感じですか? そりゃ結構タフなリクエストですね Wink(オフラインモード対応しろとか言ってる自分の事は棚に上げてスイマセン )
あまり深くは考えていなかったのですが、ロールから写真を撮ったりなどはもちろんのこと、バーコードリーダーの様なものが欲しいなとは思います。
モバイルSafaliのHTML5の対応って結構いいですね。ですがwebviewのUIってたしかローカルファイルの表示ができなかったと思います。オフラインでもってことだとこの辺り引っかかりませんか?
hosaka- 投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪
Re: 4DでiOSアプリを開発する
倉庫にiPhoneを持って入り、納品された商品のJANコードをスキャンし、「12個」などと音声入力すると4Dサーバーにデータ入力される、というのができるとうれしいですね。
TAKMAC- 投稿数 : 8
登録日 : 2016/07/16
Re: 4DでiOSアプリを開発する
開発者全員が各種開発環境に精通しているわけではないので、4Dの開発環境になれた開発者がiOSアプリ開発のために新たな言語を学習するための学習コストを考慮すると、慣れ親しんだ4Dでそのまま開発出来るというのは大きなメリットではないでしょうか。
そもそも無理という話なのであれば期待するだけ悲しくなる話ですが、XCodeと比較した場合4Dの開発環境はとても生産性の高いツールだと思っていますので、もし4DだけでiOSアプリの開発が可能となれば開発コストも大きく下げられると感じていますので嬉しいですね。
そもそも無理という話なのであれば期待するだけ悲しくなる話ですが、XCodeと比較した場合4Dの開発環境はとても生産性の高いツールだと思っていますので、もし4DだけでiOSアプリの開発が可能となれば開発コストも大きく下げられると感じていますので嬉しいですね。
高橋- 投稿数 : 1
登録日 : 2017/01/19
Permissions in this forum:
返信投稿: 不可
|
|