質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

414閲覧

react nativeのViewとswiftの処理と連携。

MOTOMUR

総合スコア195

React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/02/18 15:41

やりたいこと。

iOSの写真フォルダ等の動画を編集したりするためには、swiftもしくはobject-cでのコーディングがどうやら調べた限りは必要そうでした。
viewの作成には慣れたreactベースのreact-nativeが僕にはよかったので、react-nativeにてswift等の関数を呼び出して実行してみようと思いました。

多言語連携ははじめてです。(swiftも先ほど本を買ってきて読み切ったばかりです。)

ということで、連携させること、swiftは初心者なので、わかりの悪いところがあると思いますが、申し訳ございません。
さて、はじめに色々なドキュメントを初心者なりに漁り、連携可能であるということと、ある程度の指針は発見することができました。
SwiftのViewControllerで定義されているメソッドをReactNativeで実行する

連携できるということを知り、ホッとしましたが、読んでいて、疑問に思い、解決しなかったことがあるので、質問させていただきます。

ファイルの配置はどうなるの?

appname-Bridging-Header.h
FooViewController.m
FooViewController.swift
上述したファイルは先ほど貼ったURLの説明に登場するものです。
このフォルダたちと、reactnativeのファイルの同居状態がいまいち把握できません。
react-nativeのApp.jsがフォルダ名(MYApp)にあるとします。

このフォルダ内のApp.jsと同じ階層に、上述3つのファイルは存在するのでしょうか?

小さな質問ですが。

js

1 onTouch() { 2 NativeModules.FooViewController.testEvent('test'); 3 }

swift

1@objc( FooViewController ) 2class FooViewController: UIViewController { 3 4 @objc func testEvent( arg: String ) { 5 // whatever 6 } 7 8}

このようにswiftの関数をreact-native上で発火させるようですが。arg:Stringの部分をint等に変えたら数値を送ることも可能ということでしょうか?
(例えばarg:Intのように。(syntaxの間違いがあったらすいません。))

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

このようにswiftの関数をreact-native上で発火させるようですが。arg:Stringの部分をint等に変えたら数値を送ることも可能ということでしょうか?

標準で↓に書いてある型が使えます。

https://facebook.github.io/react-native/docs/native-modules-ios.html#argument-types

整数であれば NSInteger ですね。

投稿2018/02/19 11:41

januswel

総合スコア301

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MOTOMUR

2018/02/20 12:58

ありがとうございます。 ファイルの構成はどのようになるでしょうか? 「ファイルの配置はどうなるの?」という項目に詳しく質問があるのでお願いします。。。
januswel

2018/02/20 23:58

すみません、見落としていました ネイティブコードは `ios` / `android` ディレクトリーにそれぞれ格納し、 js コードをトップや `src` におく、ということを皆さん共通してやっているようです https://github.com/innoveit/react-native-ble-manager https://github.com/react-native-community/react-native-camera ですので `ios` ディレクトリー以下に適当なディレクトリー、たとえば `MyModules` などを作成してそこに Swift と Objective-C のコードを格納するのがよいのではないでしょうか ?
MOTOMUR

2018/02/22 05:18

ありがとうございます。助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問