Backend pro mobilní zařízení

Pro mobilní aplikace často potřebujete vytvořit backend pro ukládání dat, přihlašování nebo push notifikace. S tím vám může pomoci Windows Azure Mobile Services.
7. 5. 2014

Sdílet

Windows Azure Mobile Service (WAMS) je služba určená pro vytváření backendu pro mobilní aplikace. Služba využívá architekturu REST, což znamená, že je nezávislá na platformě. Aby byl vývoj aplikací co jednodušší, je k dispozici celá řada knihoven pro různé platformy, které zjednodušují vytváření klientské aplikace.

Není bez zajímavosti, že služba WAMS je postavena na Node.js.

Ukládání dat

Data jsou ukládána do standardní Azure SQL databáze, kterou WAMS zpřístupní přes REST rozhraní. U databáze stačí jen vytvořit tabulku, a o vytvoření struktury se automaticky postará služba. Struktura tabulky se vytváří podle objektů, které se do tabulky pokusíte uložit. Automatické generování struktury tabulky lze samozřejmě vypnout.

public class TodoItem

{

      public string Id;

      public string Text;

      public bool Complete;

}

Všimněte si, že název třídy odpovídá názvu tabulky a pro každou veřejnou vlastnost třídy je vytvořeno pole tabulky se stejným názvem.

Ukázka uložení záznamu do tabulky (Android):

import com.microsoft.windowsazure­.mobileservices.*;

private MobileServiceClient mClient;

mClient = new MobileServiceClient(

        „https://stepanb-unicorn.azure-mobile.net/“,

         „gpwatozYphLSRxbIwSHUZB3cOGZils70“,

         this

);

TodoItem item = new TodoItem();

item.Text = „Awesome item“;

mClient.getTable(Item.clas­s).insert(item, new TableOperationCallback<Item>() {

       public void onCompleted(Item entity, Exception exception, ServiceFilterResponse response) {

            if (exception == null) {

                  // Insert succeeded

         } else {

              // Insert failed

         }

     }

});

Autorizace

Pro autorizaci můžete využít různé různé služby jako je Twitter, Facebook, Google, Microsoft Account nebo Active Directory.

Po nastavení WAMS stačí jen přidat kód pro vynucení autorizace v aplikaci.
import com.microsoft.windowsazure­.mobileservices.MobileSer­viceUser;
import com.microsoft.windowsazure­.mobileservices.MobileSer­viceAuthenticationProvider;
import com.microsoft.windowsazure­.mobileservices.UserAuthen­ticationCallback;
private void authenticate() {

  // Login using the Google provider.
  mClient.login(MobileServi­ceAuthenticationProvider.Go­ogle,
        new UserAuthenticationCallback() {
             @Override
            public void onCompleted(MobileServiceUser user,
                   Exception exception, ServiceFilterResponse response) {

                if (exception == null) {
                   createAndShowDialog(String.format(
                             „You are now logged in – %1$2s“,
                             user.getUserId()), „Success“);
                   createTable();
               } else {
                   createAndShowDialog(„You must log in. Login Required“, „Error“);
                   }
                }
          });
}

U tabulky pak můžete nastavit přístupová práva.

Push notifikace

Podporovány jsou opět všechny hlavní platformy.

Z výše uvedeného je zřejmé, že pomocí Windows Azure Mobile Services můžete velmi snadno vytvořit univerzální backend pro různé mobilní platformy. V případě, že by vás zajímalo více informací k tomuto tématu, najdete je v dokumentaci, nebo se můžete podívat na záznam přednášky o této službě.

Štěpán Bechynský