Reaksiyon Yerli ve AWS Amplify

Reaksiyon Yerlisi, JavaScript ve Reaktör kullanarak çapraz platform mobil uygulamaları geliştirme için lider bir çerçeve haline geldi.Her iki iOS ve Android'de tek bir kod tabanından gelen deneyimler, başlangıç ve işletmeler arasında da favori yapar.Ancak, arka uç hizmetleri inşa etmek [Dönderim, veri devam etmek, gerçek zamanlı güncellemeler, dosya depolama ve sunucusuz API’ler – hızlı bir şekilde bir şekilde geri yükleme ve karmaşık hale getirmek için zaman alıcı bir şekilde çalışır.

Bu makale, bir Reaks Yerli projesinde ampüldütme, veri depolama ve API'ler gibi gelişmiş özelliklerle, son olarak, ölçeklenebilir mobil uygulamalar için üretim hazır bir mimariye sahip olacaksınız.

AWS'nin ne anlama geldiğini?

AWS bağlantı, kimlik doğrulama, veri depolama, AI /ML tahminleri gibi ortak kullanım koşulları için bir dizi platform sağlar ve doğrulayıcılar altında (Döneticileri) otomatik olarak kullanılabilir.The API'si (kullanıcı kimlik doğrulama)[değiştir | kaynağı değiştir)

Amplify kullanmanın temel yararları şunlardır:

  • [FONT:0]Rapid prototyping[[Dönetici] – Saffold full-featured backends dakikalar içinde.
  • [FONT:0)Declarative altyapı[[Dönetici: 1) Basit KÖKSİYONLAR kaynakları basit bir şekilde kullanarak tanımlar; Amplify handles AWS CloudFormation behind the scene.
  • [FONT:0]Built-in en iyi uygulamaları[Döntilmiş: 1) Amplify, AWS güvenlik ve ölçeklenebilirlik varsayılanlarını otomatik olarak uygular.
  • [FONT:0]Offline ve gerçek zamanlı yetenekleri[[Dönetici: 1) Data store motoru, yerel depolamayı otomatik çatışma çözümü ve senkronizasyon ile sağlar.
  • [FONT:0)Multi-platform[[[Dönetici:0) – Aynı geri dönüş, Reaksiyon Yerli, iOS, Android, Web ve Flutter'de çalışır.

AWS Amplify ile bir Reaksiyon Yerli Projesi Oluşturun

Önlemler Önlemler

Başlamadan önce, aşağıdaki yüklün olmasını sağlayın:

  • Node.js (vers 16 veya daha sonra)
  • AWS KURAL ve AWS KURAL'ı ([[Dönemli) düzeltti ([*).
  • Uygun IAM izinleri ile bir AWS hesabı
  • Reaksiyon Yerlisi Kuantum veya Expo CLI (Expo daha basit projeler için amplifikasyonu ile iyi çalışır)

Sıfırdan başlıyorsanız, yeni bir Reaksiyon Yerli projesi oluşturun:

npx react-native init MyAmplifyApp
// or for Expo
npx create-expo-app MyAmplifyApp

Ampiify Kütüphaneleri

Proje klasörünüzde, temel Amplify kütüphanesi ve Reaks Yerli özel kalıcılık paketini yükleyin (bitkiler ve çevrimdışı verileri depolamak için):

npm install aws-amplify @react-native-async-storage/async-storage

iOS için, CocoaPods bağımlılıklarını da yüklemeniz gerekebilir:

cd ios && pod install && cd ..

Proje Adı: İlkelify in Your Project

Yeni bir geri dönüş projesi oluşturmak için Ampiify CLI'ı çalıştırın.Seks istediğiniz bulut kaynaklarını seçmenizi isteyecektir:

amplify init

Etkileşimli hızlıları takip edin: Tercih edilen metin editörü seçin, yapılandırmayı içeren bir uygulama türünü seçin ve ihtiyacınız olan hizmetleri belirtin (örneğin, React Native için). İlkleşmeden sonra Amplify bir aENFLT:7 oluşturur.

amplify add auth

Varsayılan yapılandırmayı seçin (Cognito User Pool). Ardından AWS hesabınızdaki kaynakları oluşturmak için değişiklikleri zorlayın:

amplify push

Amplify, yeni kaynak uç noktaları ile dosyayı güncelleyecek.

App'te Amplify'ı yapılandırın

Ana giriş dosyasınızda (örneğin, MAGART:12), ithal ve yapılandırma Amplify:

import { Amplify } from 'aws-amplify';
import awsconfig from './src/aws-exports'; // adjust path as needed
Amplify.configure(awsconfig);

Şimdi Reaksiyon Yerli uygulamanız Amplify'in özelliklerini kullanmaya hazır.

Core Feature Integration

Kimlik Doğrulama

Auth, kullanıcı yönetimini işaretle basitleştirir, işaret-in, şifre kurtarma ve çok faktörlü kimlik doğrulama (MFA) hood altında, AWS Cognito Kullanıcı Havuzları kullanır.

[[Düzzaman:0)Örnek:[Dönemli:)

import { Auth } from 'aws-amplify';

async function signIn(username, password) {
 try {
 const user = await Auth.signIn(username, password);
 console.log('Sign-in successful', user);
 } catch (error) {
 console.log('Error signing in', error);
 }
}

Bir kullanıcı şu anda otantik olup olmadığını kontrol etmek için, Amplify'in otomatik olarak yenilemesini de çağırabilirsiniz, bu yüzden JWT expiry'yi manuel olarak yönetmek zorunda değilsiniz.

Tam bir doğrulama akışı için (sign-up, doğru işareti onaylayın, işaret-in, işaret-out), [[TRD:0) resmi Reaks Yerli Auth belgesi).

GraphQL ile veri modelleme (AppSync)

Amplify'ın birincil veri çözümüdür:0)GraphQL ile AWS AppSync) ile esnek bir API sağlar, gerçek zamanlı abonelikler, iyi hazırlanmış bir yetki ve otomatik veri senkronizasyonu.

amplify add api

GraphQL'yi seçin ve Kuantumify'ın değiştirebileceğiniz bir örnek şeması oluşturduğunuz için size soracaktır. Örneğin basit bir Todo modeli:

type Todo @model {
 id: ID!
 name: String!
 description: String
 createdAt: AWSDateTime!
}

[FONT=18] Direktif, DynamoDB tabloları, çözümleyicileri ve CRUD operasyonlarını otomatik olarak oluşturur. ([[DÜDÜDÜŞÜN) sonra Amplify TypeScript/JavaScript dosyaları (örneğin, 03.000T: 7) ve [[Döneticileri) uygulamanıza ekleyebileceğinizi gösterir.

[FONT:0)Example: Sorgu ve Mutate Data).

import { API, graphqlOperation } from 'aws-amplify';
import { listTodos } from './graphql/queries';
import { createTodo } from './graphql/mutations';

async function fetchTodos() {
 const result = await API.graphql(graphqlOperation(listTodos));
 return result.data.listTodos.items;
}

async function addTodo(name, description) {
 const todo = { name, description };
 const result = await API.graphql(graphqlOperation(createTodo, { input: todo }));
 return result.data.createTodo;
}

Gerçek zamanlı güncellemeler için, abonelikleri kullanın:

import { onCreateTodo } from './graphql/subscriptions';

const subscription = API.graphql(graphqlOperation(onCreateTodo)).subscribe({
 next: (event) => console.log('New todo:', event.value.data.onCreateTodo),
});

GraphQL API'ler ayrıca Cognito grupları, IAM veya API anahtarlarını kullanarak karmaşık yetkilendirme kalıpları da destekliyor. Görün:0)GraphQL API rehberi[[Dönetici: 1) detaylar için.

Data store – Offline-First & Real-Time Sync

Amplify Data Shop, yerel depolama, otomatik çatışma çözümü ve bulutla sorunsuz bir senkronizasyon sağlayan güçlü bir motordur (In AppSync). Özel senkronizasyon mantığı yazmadan güçlü çevrimdışı desteğe ihtiyaç duyan uygulamalar için idealdir.

Data Shop'ı kullanmak için, ilk olarak modellerinizi Amplify CLI kullanarak tanımlamak (bu da aritFLT:24) klasörü oluşturur.

import { DataStore } from 'aws-amplify';
import { Todo } from './models';

async function saveTodo() {
 await DataStore.save(new Todo({
 name: 'Buy groceries',
 description: 'Milk, eggs, bread'
 }));
}

async function queryTodos() {
 const todos = await DataStore.query(Todo);
 return todos;
}

Data store otomatik olarak bir bağlantı mevcut olduğunda buluta değişir. Çatışmalar (örneğin, iki cihazdan çevrimdışı düzenlemeler) varsayılan olarak son yazar-kazan stratejisi kullanarak çözülebilir, ancak özel eller ile çatışma çözümü özelleştirebilirsiniz.

Dosya ve Görüntü Depolama (S3)

Amplify Storage, Amazon S3'ü kullanarak dosya yüklemelerini ve indirmelerini basitleştirir: depolamayı eklemek için:

amplify add storage

İçerik (görücüler, ses, video, vb.) seçin ve kamu / özel erişim seviyelerini yapılandırın. Sonra Reaksiyon Yerli uygulamanızdan dosyaları yükleyin:

import { Storage } from 'aws-amplify';

async function uploadPhoto(uri) {
 const response = await fetch(uri);
 const blob = await response.blob();
 const result = await Storage.put('photo.jpg', blob, {
 contentType: 'image/jpeg',
 });
 console.log('File uploaded at:', result.key);
}

Ekran için imzalanmış URL almak için:

const imageUrl = await Storage.get('photo.jpg');
// Use imageUrl in an Image component

Amplify ayrıca yeniden inşa etmeyi ve dönüşümü (parmaklar üretmek gibi) de ele alır.

Serverless Functions (Lambda)

Özel geri dönüş mantığı için, Amplify, AWS Lambda ile bütünleşiyor. Bir işlev ekleyin:

amplify add function

Bir şablon seçin (örneğin basit bir CRUD işlevi veya planlanan bir görev). Amplify yerel olarak bir Lambda işlevi oluşturacak ve API veya diğer kaynaklarla kablolayabilirsiniz. Daha sonra GraphQL API (bir çözümleyicisi olarak) aracılığıyla veya doğrudan Ampl Functionifys kütüphanesini kullanabilirsiniz:

import { Func } from 'aws-amplify';

const result = await Func.invoke('myFunction', { input: 'data' });

Bu, ödeme işleme, görüntü dönüşümü veya üçüncü taraf API'lerle entegrasyon gibi görevler için idealdir.

Gelişmiş Kullanım Vakaları ve En İyi Uygulamaları

Offline Mode and Conflict Decision

Data Shop çevrimdışı modları şeffaf bir şekilde ele alır, ancak dikkate almanız gereken üretim uygulamaları için:

  • [FONT=0]Conflict çözünürlük stratejileri[[Dönetici: 1 ) – Data store, aynı rekoru çevrimdışı olarak değiştirirse, çatışma otomatik olarak çözülebilir (son yazar kazanır) veya özel mantıkla kullanımdan elde edilebilir.
  • [FONT=0)Seçici senkronizasyon[[[Dönetici:0)[[Dönetici:0)))[[Dönetici[Döneticileri değiştir]; sadece mevcut kullanıcı tarafından misafir edilen bir alt kümesini senkronize etmek için ön bilgiler kullanın.
  • [FONT statüsüne dikkat etmek için [[Dönemli:0)) - Alternatif ilerlemeye ve çevrimdışı göstergeleri göstermeye abone olun.

Multi-Factor Authentication (MFA) ile güvenli kimlik

Auth SMS veya TOTP tabanlı MFA'yı destekler. Bunu, [[Uygunluk: 9) sırasında, uygulamanız, MFA'yı işaret sonrası kurmak için hızlı kullanıcılar. Örnek:

import { Auth } from 'aws-amplify';

async function setupMFA() {
 const user = await Auth.currentAuthenticatedUser();
 const code = await Auth.setupTOTP(user);
 // Show QR code to user
}

Amazon Pinpoint ile Gerçek Zaman Bildirimleri

Amplify ayrıca Amazon Pinpoint ile bildirimleri zorlamak için entegre eder. Analiz ekleyin ([DÜDÜDÜŞÜN) ve sonra Bildirim kategorisini kullanın:

import { Notifications } from 'aws-amplify';

Notifications.Push.onNotificationOpened((notification) => {
 console.log('Notification opened:', notification);
});

Bu hem iOS (APNs) ve Android (FCM) ile çalışır.

Performans Optimizasyonları

  • [FONT:0]Bundle büyüklüğü[[Dönetici: Ağaç şaking kullanın: ihtiyacınız olan kategoriler sadece (örneğin, tüm kütüphane yerine (örneğin) ithal edin.
  • [[DüzD:0)Lazy ilkizasyon[Dönetici: Gecikme:0)[Dönetici: Gecikme:0)[Dönetici #izasyon[Dönetici # 1] – Gecikme: 8|Seks|Dönetici|Sekiz|Seks|Sekizleme))
  • [FONT:0)Data pagination[[[Dönetici: 1 ) – GrafikQL sorguları kullanırken, eğrilere dayalı paginasyonu 03: 00) ve [[FONTD:0) büyük veri setlerini yüklemekten kaçınmak için.
  • [FONT:0]Compress görüntüler[[Dönetici: 1) S3'e yüklemeden önce, kullanıcı tarafında bulunan kütüphaneleri kullanarak görüntüleri otomatik olarak veya sıkıştırın.

Common Pitfalls Kaçmak için

  • [FONT:0) Ağ durumunu kullanmamak – Amplify çevrimdışı çalışır, ancak bağlantı değişiklikleri dinlemeli ve uygun UI göstermelisiniz.
  • [FONT:0) GraphQL)'de Aşırı fettiş (D) - Her zaman sorguya ihtiyacınız olan alanları belirt. Yeniden kullanılabilir alan seçimi için parçaları kullanın.
  • [FONT:0) IAM izinlerini görmezden gelir ([Dönetici:0) - IAM tabanlı auth (e.g., for public API access), Cognito Identity Pool rollerinizin AppSync ve S3 için doğru politikalara sahip olmasını sağlar.
  • [FONT:0) Expo'nun yönetilen iş akışını ) yönetiyor - Expo çalışırken bazı Amplify özellikleri (örneğin, bildirimler ve belirli yerel modüller gibi) özel eklentilerle açık iş akış veya EAS Build gerektirir.
  • [FONT:0]Skipping the CLI's local testing) – UseETHFLT:42] GraphQL APIs test etmek ve buluta zorlamadan önce yerel olarak işlevleri test etmek için.

Reaksiyon Yerlisini AWS Amplify ile birleştirmek Faydaları

  • [FONT:0)Accelerated development[[[Dönetici: 1) )[Döneticileri)[[değiştir | kaynağı değiştir], böylece kullanıcı arayüzüne odaklanabilirsiniz.
  • [FONT:0]Scalability[Dönetici:0)[Dönetici:0))[Döneticiler (Bilge, AppSync, DynamoDB, S3) milyonlarca kullanıcıyla başa çıkmak için tamamen yönetilmekte ve otomatik ölçeklenmektedir.
  • [FONT:0]Built-in güvenlik) – Amplify, AWS'nin geri kalanında şifreleme gibi en iyi uygulamaları uyguluyor, IAM rolleri ve iyi ulaşılmış erişim kontrolü.
  • [FONT=0]Cross-platform tutarlılığı[[[Dönetici:0)[[Dönetici:0))[[[Dönetici: iOS, Android ve web uygulamaları, bakım yükünü azaltır.
  • [FONT:0]Offline-first features[[Dönetici: 1 ) – Data Shop özel kod olmadan üretime hazır çevrimdışı bir deneyim sunar.
  • [FONT:0]Cost- effective[[[Dönetici:0))[Dönetici: 1 ) – Sadece kullandığınız AWS kaynakları için, küçük projeler için cömert bir ücretsiz katmanı ile ödeme yapın.

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Reaksiyon Yerli ve AWS Amplify, bulut geri uçları ile modern mobil uygulamaları inşa etmek için güçlü bir ikili oluşturur. Amplify, zaman doğrulama görevlerinin zamanlarını ortadan kaldırır, veritabanı oluşturur, API'leri yaratarak ve gerçek zamanlı özellikleri oluşturabilirsiniz.Bu kılavuzda adımları takip ederek - doğrulamayı sağlar, bir GraphQL API'yi birleştirir, veri mağazası oluşturun ve sunucusuz işlevleri optimize edin - tam zamanlı olarak kullanılabilir.

Daha derin keşif için aşağıdaki kaynaklara atıfta bulun:

  • [FONT:0)Official Amplify Reaks Yerlisi Başlatmaya Başladı[DÜT:1).
  • [0]AWS Mobile Blog - Gerçek dünya örnekleri).
  • [0]Amplify GitHub Repository - Örnekler ve sorunlar[Dön 1: 1]
  • [FONT:0) AWS'yi Expo ile Ampirik Ederek (Dönetici)

Bu yığını benimsemeye göre, ekibiniz daha az geri dönüş karmaşıklığı ile sağlam, güvenli ve ölçeklenebilir mobil uygulamaları sağlayabilir. Bir sonraki projenizi Reaksiyon Yerli ve AWS Amplify ile başlatın ve tamamen yönetilen bir bulut geri dönüşü farkı deneyimleyebilir.