react-nativeで画像選択をしたい場合、だいたいはImagePickerを使っているかと思います。 ただ、SNSのプロフィール画像設定UIでよくあるような「特定の形に画像を切り抜いて選択する」場合は、react-native-image-crop-pickerを使うのがおすすめです。
react-native 0.63.1
react-native-image-crop-picker 0.33.2
下記コマンドでreact-native-image-crop-picker
をインストールします。
yarn add react-native-image-crop-picker
iOS
の場合はpod install
を行います。
cd ios && pod install
さらにInfo.plist
にNSPhotoLibraryUsageDescription
とNSCameraUsageDescription
とNSMicrophoneUsageDescription
のテキストを追加します。
<key>NSPhotoLibraryUsageDescription</key>
<string>ほげほげ</string>
<key>NSCameraUsageDescription</key>
<string>ほげほげ</string>
<key>NSMicrophoneUsageDescription</key>
<string>ほげほげ</string>
android/build.gradle
に下記を追加します。
allprojects {
repositories {
mavenLocal()
jcenter()
maven { url "$rootDir/../node_modules/react-native/android" }
// ADD THIS
maven { url 'https://maven.google.com' }
// ADD THIS
maven { url "https://www.jitpack.io" }
}
}
さらにandroid/app/build.gradle
に下記を追加します。
android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
...
defaultConfig {
...
vectorDrawables.useSupportLibrary true
targetSdkVersion 27
...
}
...
}
使用感はImagePicker
と変わらないです。
以下はアルバムから任意の画像を1枚選択肢、500*500
の正方形に画像を切り抜くUI実装のサンプルです。
※他にも、複数選択や動画選択などの機能があります。
import ImagePicker from 'react-native-image-crop-picker';
// ImagePickerで画像を切り抜いて保存
ImagePicker.openPicker({
width: 500,
height: 500,
cropping: true, // Cropをさせる
mediaType: 'photo', // 写真のみ
includeBase64: true, // 出力結果にbase64を含める(trueの場合、出力に`data`のプロパティが含まれる)
}).then((image) => {
console.log(image);
// パスは image.path
// ファイル名は image.fileName ※iOS限定
// base64は image.data ※includeBase64の指定必須
});
以下のようなUIになります。
今回はreact-native-image-crop-picker
のインストールと基本的な使い方についてご紹介しました。
本家のImagePicker
を拡張したような使い勝手なので、あちらを使ったことがある場合は難なく導入できるかなと思います。
react-native
の学習には、大元であるreact
の知識もさることながら、iOS
やAndroid
といったネイティブの知識も必要になってきます。
いずれかのバックボーンを元々持っている人にとっては取り掛かりやすいかもしれませんが、Javascript
をようやく覚えて「さあスマホアプリを作ろう!」と思い立った方にはなかなか高いハードルです。
そういった場合、書籍や動画といった体系的にまとめられた教材を使用するのが有効です。
ひととおりの基本知識を蓄えてから各種ライブラリやredux
といったフレームワークを利用することになるため、何は無くとも基礎固めをしていきましょう。
以下に管理人が実際に学習した教材を紹介します。
特に初心者〜中級者にオススメの書籍です。
ReactNative
の体系的な知識をぎゅっと詰め込んだ一冊となっており、
お題目に沿って進めていくことでTODOアプリ
を開発することができます。
※ページ量が嵩むため、Kindle
版の購入をオススメします。