Native에서 지원하는 디바이스 인터페이스와 flutter, RN에서 사용되는 함수들이 궁금해서
Bard에게 물어보았다 ㅎㅎ;
그래서 정확하지는 않을수 있겠지만 하나씩 붙여가면서 확인해봐야 할것 같다.
- Native에서 지원하는 인터페이스중 지원하지 않는게 있을것 같아서 확인할겸 정리해 보았다.
다 되는것같아 보이긴한대..
함수 | Kotlin | Swift | Flutter | React Native |
지문인식 | FingerprintManager.authenticate(null, null, 0, null, null) | UIDevice.isPasscodeSet | BiometricPrompt.authenticate(null) | Biometric.authenticate() |
페이스아이디 | FaceManager.authenticate(null) | UIDevice.isFaceIDAvailable | FaceDetector.detectFaces() | Biometric.authenticate() |
키보드 열기 | Keyboard.show() | UITextField.becomeFirstResponder() | FocusNode.requestFocus() | Keyboard.open() |
키보드 닫기 | Keyboard.hide() | UITextField.resignFirstResponder() | FocusNode.unfocus() | Keyboard.close() |
백그라운드 | startService() | UIApplication.shared.beginBackgroundTask() | BackgroundMode.values() | AppState.background |
포그라운드 | stopService() | UIApplication.shared.endBackgroundTask() | BackgroundMode.values() | AppState.foreground |
푸시 | FirebaseMessaging.subscribe() | UNUserNotificationCenter.requestAuthorization() | FirebaseMessaging.subscribe() | Notifications.requestPermissions() |
위치 | LocationManager.requestLocation() | CLLocationManager.requestLocation() | Geolocator.getCurrentPosition() | Geolocation.getCurrentPosition() |
광고추적 | AppTrackingTransparency.requestTrackingAuthorization() | SKAdNetwork.requestTrackingAuthorization() | GoogleMobileAds.requestTrackingAuthorization() | GoogleMobileAds.requestTrackingAuthorization() |
파일권한 | Context.checkSelfPermission() | FileManager.getPermissions() | Permission.values() | Permissions.values() |
사진 | MediaStore.Images.Media.getBitmap(contentResolver, uri) | UIImagePickerController.getImageFrom() | Image.file() | Image.file() |
공유하기 | Intent.createChooser() | UIActivityViewController.show() | Share.share() | Share.share() |
알림 | NotificationManager.notify() | UNUserNotificationCenter.addNotification() | showDialog() | Alert.alert() |
로컬 알림 | AlarmManager.set() | UNUserNotificationCenter.scheduleNotification() | showDialog() | Alert.alert() |
소리 | AudioManager.setStreamVolume() | AVAudioSession.setCategory() | AudioService.play() | Audio.play() |
진동 | Vibrator.vibrate() | UIDevice.vibrate() | Vibration.vibrate() | Vibration.vibrate() |
카메라 | CameraX.open() | AVCaptureDevice.default(for: .video) | ImagePicker.pickImage() | ImagePicker.pickImage() |
마이크 | AudioManager.setMicrophoneMute() | AVAudioSession.setCategory() | Microphone.isRecording() | Microphone.isRecording() |
센서 | SensorManager.registerListener() | CMMotionManager.startDeviceMotionUpdates() | Sensor.accelerometer.value | Sensor.accelerometer.value |
네트워크 | ConnectivityManager.getActiveNetworkInfo() | Reachability.isReachable() | Connectivity.check() | Connectivity.check() |
화면 밝기 | WindowManager.LayoutParams.screenBrightness | UIScreen.main.brightness | Brightness.value | Brightness.value |
배터리 | BatteryManager.getBatteryLevel() | UIDevice.batteryLevel | Battery.level | Battery.level |
시간 | Calendar.getInstance() | DateFormatter.timeStyle | DateTime.now() | DateTime.now() |
날짜 | Calendar.getInstance() | DateFormatter.dateFormat() | DateTime.now() | DateTime.now() |
언어 | Locale.getDefault() | Locale.current | Locale.current | Locale.current |
통화 | TelephonyManager.getDeviceId() | CTCarrier.current() | Telephony.phoneNumber() | Telephony.phoneNumber() |
연락처 | ContactsContract.CommonDataKinds.Phone.CONTENT_URI | CNContactStore.getContacts() | Contacts.all() | Contacts.all() |
지도 | MapView.getMapAsync() | MKMapView.map() | Map.getMap() | Map.getMap() |
웹뷰 | WebView.loadUrl() | WKWebView.load(URLRequest) | WebView.loadUrl() | WebView.loadUrl() |
설명
- Kotlin은 androidx.biometric 라이브러리를 사용하여 지문인식과 페이스아이디를 지원합니다.
- Swift는 UIDevice 클래스를 사용하여 지문인식과 페이스아이디를 지원합니다.
- Flutter는 BiometricPrompt 클래스를 사용하여 지문인식과 페이스아이디를 지원합니다.
- React Native는 Biometric 클래스를 사용하여 지문인식과 페이스아이디를 지원합니다.
- Keyboard 클래스를 사용하여 키보드를 열고 닫을 수 있습니다.
- startService() 함수를 사용하여 백그라운드에서 서비스를 실행할 수 있습니다.
- UIApplication 클래스의 beginBackgroundTask() 함수를 사용하여 백그라운드에서 작업을 수행할 수 있는 백그라운드 태스크를 시작할 수 있습니다.
- FirebaseMessaging 클래스를 사용하여 푸시 알림을 수신할 수 있습니다.
- LocationManager 클래스를 사용하여 위치 서비스를 사용하도록 설정할 수 있습니다.
- AppTrackingTransparency 클래스를 사용하여 광고 추적을 허용할지 여부를 결정할 수 있습니다.
- Context 클래스의 checkSelfPermission() 함수를 사용하여 파일 권한을 요청할 수 있습니다.
- MediaStore 클래스의 getBitmap() 메서드를 사용하여 이미지를 가져올 수 있습니다.
- Intent 클래스를 사용하여 공유 액티비티를 시작할 수 있습니다.
- Kotlin과 Swift는 LocationManager 클래스를 사용하여 위치 서비스를 사용하도록 설정할 수 있습니다.
- Flutter는 Geolocator 클래스를 사용하여 위치 서비스를 사용하도록 설정할 수 있습니다.
- React Native는 Geolocation 클래스를 사용하여 위치 서비스를 사용하도록 설정할 수 있습니다.