Skip to content

utkufy/final-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mobil Uygulama Dokümantasyonu

Uİ UX KISMI VE TEST KISMI YOK BURADA HABERİNİZ OLSUN

İletişim Bileşeni (Communication.js)

Kullanılan Kütüphaneler

import * as Contacts from 'expo-contacts';
import { Linking } from 'react-native';

Kod Açıklamaları

  1. Rehber İzni ve Kişileri Alma
const { status } = await Contacts.requestPermissionsAsync();
  • Bu kod, kullanıcıdan telefon rehberine erişim izni ister
  • Kullanıcı izni kabul ederse 'granted' durumu döner
  • İzin reddedilirse, rehbere erişilemez
const { data } = await Contacts.getContactsAsync({
    fields: [Contacts.Fields.PhoneNumbers, Contacts.Fields.Name],
});
  • İzin alındıktan sonra rehberdeki kişileri getirir
  • Sadece telefon numarası ve isim bilgilerini alır
  • Veriler 'data' değişkeninde saklanır
  1. Arama ve Mesaj Fonksiyonları
const handleCall = (phoneNumber) => {
    Linking.openURL(`tel:${phoneNumber}`);
};

const handleMessage = (phoneNumber) => {
    Linking.openURL(`sms:${phoneNumber}`);
};
  • handleCall: Telefon numarasına tıklandığında arama uygulamasını açar
  • handleMessage: Mesaj butonuna tıklandığında SMS uygulamasını açar

Harita Bileşeni (Map.js)

Kullanılan Kütüphaneler

import * as Location from 'expo-location';
import MapView, { Marker } from 'react-native-maps';

Kod Açıklamaları

  1. Konum İzni ve Alma
let { status } = await Location.requestForegroundPermissionsAsync();
  • Kullanıcıdan konum izni ister
  • Ön plan konum izni için gereklidir
let loc = await Location.getCurrentPositionAsync({});
  • Cihazın mevcut konumunu alır
  • Enlem ve boylam bilgilerini içerir
  1. Harita Görüntüleme
<MapView
    initialRegion={{
        latitude: location.latitude,
        longitude: location.longitude,
        latitudeDelta: 0.01,
        longitudeDelta: 0.01,
    }}
>
  • Kullanıcının konumunu merkez alarak haritayı gösterir
  • latitudeDelta ve longitudeDelta zoom seviyesini belirler

Bildirim Bileşeni (NotificationExample.js)

Kullanılan Kütüphaneler

import * as Notifications from 'expo-notifications';

Kod Açıklamaları

  1. Bildirim Konfigürasyonu
configureNotifications();
requestPermissions();
  • Bildirim ayarlarını yapılandırır
  • Kullanıcıdan bildirim izni ister
  1. Bildirim Gönderme
sendImmediateNotification(
    'Anlık Bildirim',
    'Bu bir anlık bildirim örneğidir!'
);
  • Anlık bildirim gönderir
  • Başlık ve mesaj içeriği alır

Sensör Bileşeni (Sensors.js)

Kullanılan Kütüphaneler

import { Accelerometer, Gyroscope } from 'expo-sensors';

Kod Açıklamaları

  1. Sensör Verilerini Alma
Accelerometer.setUpdateInterval(1000);
const accelerometerSubscription = Accelerometer.addListener(data => {
    setAccelerometerData(data);
});
  • İvmeölçer verilerini her saniye günceller
  • X, Y, Z eksenlerindeki hareket verilerini alır
Gyroscope.setUpdateInterval(1000);
const gyroscopeSubscription = Gyroscope.addListener(data => {
    setGyroscopeData(data);
});
  • Jiroskop verilerini her saniye günceller
  • Cihazın dönüş hareketlerini algılar

Uygulama Navigasyonu (App.js)

Kullanılan Kütüphaneler

import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';

Kod Açıklamaları

<Tab.Navigator>
    <Tab.Screen name="Harita" component={MapPage} />
    <Tab.Screen name="Rehber" component={ContactsPage} />
    <Tab.Screen name="Bildirimler" component={NotificationsPage} />
    <Tab.Screen name="Sensörler" component={SensorsPage} />
</Tab.Navigator>
  • Alt navigasyon menüsünü oluşturur
  • Dört ana sayfaya erişim sağlar:
    • Harita: Konum gösterimi
    • Rehber: Kişiler listesi
    • Bildirimler: Bildirim yönetimi
    • Sensörler: Sensör verileri

Yardımcı Fonksiyonlar(Bildirim için kullandım) (Utils)

Bildirim Yardımcıları (notification.js)

import * as Notifications from 'expo-notifications';
  1. Bildirim İzinleri
export async function requestPermissions() {
  const { status } = await Notifications.requestPermissionsAsync();
  return status;
}
  • Kullanıcıdan bildirim izni ister
  • İzin durumunu döndürür
  1. Anlık Bildirim Gönderme
export async function sendImmediateNotification(title, body) {
  await Notifications.scheduleNotificationAsync({
    content: {
      title: title,
      body: body,
    },
    trigger: null,
  });
}
  • Hemen gösterilecek bildirim oluşturur
  • Başlık ve mesaj içeriği alır
  1. Bildirim Ayarları
export function configureNotifications() {
  Notifications.setNotificationHandler({
    handleNotification: async () => ({
      shouldShowBanner: true,
      shouldShowList: true,
      shouldPlaySound: true,
      shouldSetBadge: false,
    }),
  });
}

## Başlangıç

1. Bağımlılıkları yükleyin:
```bash
npm install
  1. Geliştirme sunucusunu başlatın:
npm start
  1. Cihazda veya emülatörde çalıştırın:
npm run android
# veya
npm run ios
  1. Rehber İzinleri

    • İlk kullanımda rehber izni istenecektir
    • İzin reddedilirse rehber özellikleri çalışmayacaktır
  2. Konum İzinleri

    • Harita özelliği için konum izni gereklidir
    • Arka planda konum izni istenmemektedir
  3. Bildirimler

    • Bildirimler için izin gereklidir
    • Test için "Bildirim Gönder" butonunu kullanabilirsiniz

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors