iOS用4D。Apple Nativeアプリケーションと簡単にインタラクション

Deeplからの自動翻訳

4D for iOSで、私たちは常にモバイルフレンドリーな機能を考えています。その主な目的は、開発者がモバイルアプリケーションで最高のユーザーエクスペリエンスを提供できるようにすることです。そして、4D v19 R3で、アクション入力コントロールを出荷するのは、そのためです。

入力コントロールとは?

ギャラリーで利用できるiOSコードを使ったフォーマッタで 、携帯電話からiOSネイティブアプリと簡単に対話することができます。たとえば、電話番号フィールドをクリックすると自動的に電話番号をダイヤルしたり、URLをクリックするだけでSafariアプリを開いたりすることができます。

アクション入力コントロールも、これとまったく同じ理屈です。これらを使って、アクションフォームにいくつかの種類のモジュールを追加し、Appleのネイティブアプリと対話することになります。ギャラリーには、次のようなものがすでに用意されています。

  • phoneContact: Apple の連絡先アプリから直接連絡先の電話番号を検索します。
  • emailContact: Apple Contact app から直接、連絡先のメールアドレスを検索します。
  • currentLocation currentLocationAddress: アプリユーザーの現在地を座標(緯度・経度)と住所で自動的に埋めます。

これらは、iOS環境とのスムーズなインタラクションを通じて新しい視点を切り開き、ユーザーの生活をより快適にするために設計されました。

そして何より、あなたは自由に独自の入力コントロールを作成し、あなたのモバイルプロジェクトに統合し、コミュニティと共有することができます。

どのように使うのですか?

モバイルプロジェクトで入力コントロールを使用するには、フォーマッタやカスタムリスト、カスタム詳細フォーム用のデータベースに入力コントロールを含める必要があります。これを行うには、特別な“inputControls” フォルダを作成し、ギャラリーから最適な入力コントロールをダウンロードし、解凍して inputControls フォルダにドラッグします。

このアクション入力コントロールは、アクションパラメータの種類に応じて、アクションセクションのパラメータプロパティで利用でき、選択できるようになります。

以下はその例です。

この例では、連絡先の電話番号と電子メールを更新するつもりです。ここで斬新なのは、Appleの連絡先アプリからデータを取得することです。この場合、ギャラリーにあるphoneContactと emailContactのアクション入力コントロールを使用します。

ユーザーのアプリでの見え方

ユーザーは、アクションメニューからeditContactアクションを選択するだけで、モバイルアプリにアクションフォームが表示されます。そこから、アクション入力コントロールによって、Appleの連絡先アプリから電話番号と電子メールを選択することができるようになります。

blank

このように、アクション入力コントロールは、Apple Nativeアプリと対話し、モバイルアプリに素敵なインタラクションを追加する、もうひとつの素晴らしい方法なのです。

プロジェクトエディタでの見え方

blank

次に、この例を動作させるために、On Mobile App Actionデータベースメソッドでeditアクションを作成する必要があります。

editアクションの4Dコード

以下は、MobileAppServerコンポーネントを使用した、プリセットアクションの編集のための、On Mobile App Actionデータベースメソッドの4Dコードの例です。

#DECLARE($request : Object)->$response : Object
$action:=MobileAppServer.Action.new($request)
$response:=New object("success"; False)

Case of 
 : ($action.name="editContact") // edit@

  var $entity; $status : Object   
  $entity:=$action.getEntity()

  For each ($key; $request.parameters)
     $entity[$key]:=$request.parameters[$key]
  End for each

  $status:=$entity.save()  // save the entity

  If ($status.success)
    $response.success:=True  // notify App that action success
    $response.dataSynchro:=True  // notify App to refresh the selection
    $response.statusText:="Edited"
			
  Else 
    $response.statusText:="Failed to edit"  // $status.statusText
    $response.errors:=$status.errors
  End if 
End case 

4Dに組み込まれたMobileAppServerコンポーネントは、4Dモバイルアプリのバックエンドコーディングをスピードアップするための様々なユーティリティメソッドにアクセスできることを思い出してください。

4Dフォーラムでご意見をお聞かせください。詳細はドキュメントをご覧ください。

David Azancot
- 4D for iOS プロダクトオーナー - David Azancotは、2017年にプロダクトオーナーとして4Dプロダクトチームに参加しました。プロダクトオーナーとして、ユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換することを担当しています。また、実装された機能が顧客のニーズを満たしているかどうかを確認することも彼の役割です。DavidはLeonard De Vinci Instituteでマーケティング、インターネット、モビリティのMBAを取得し、2011年にモバイルスタートアップ企業でキャリアを開始。この企業は後にモバイルマーケティンググループのMadvertiseに買収されました。モバイルインターフェースに情熱を注ぐ彼は、2015年、同グループのインタラクティブなモバイル広告フォーマットの開発に抜擢されました。並行して、Davidは2012年から彼独自のiOSおよびAndroidアプリケーションを開発しています。