ReactNative開発者のためのFlutter入門~文法編~
こんにちは。普段ReactNativeでアプリケーションを開発しているMちゃんです!
前から良いと評判のFlutterをやってみたいなとずっと思ってたのですが、ようやく重い腰を上げてようやく取り組んだので、ReactNativeと比べてどうなのか?という視点も含めて書いていきたいと思います!
Flutterとは
FlutterはDartを開発言語としており、Googleによって開発されたモバイルアプリケーションSDK
ReactNativeと同じで1つのコードからiOS,Android両方のプラットフォームで動作するアプリケーションが作成できます。
独自のレンダリングエンジンを実装しており、Hot Reloadが魅力を1つです。
文法の違い
変数
ReactNativeは動的型付けです。
Dartでは静的、動的の2つを組み合わされています。
型は必須ですが、一部の型注釈は省略可能です。
// JavaScript
var name = 'Flutter';
// Dart
String name = 'Flutter';
var name = 'flutter';
既定値
ReactNative(JavaScript)の既定値はundefined。
Dartはnullになります。
// JavaScript
var name; // undefined
// Dart
String name; // null
if判定
ReactNative(JavaScript)ではifの条件0またはnullがfalse。
Dartではfalseのみです。
// JavaScript
var myNull = null;
if (!myNull) {
console.log('null is treated as false');
}
var zero = 0;
if (!zero) {
console.log('0 is treated as false');
}
// Dart
var myNull = null;
if (myNull == null) {
print('use "== null" to check null');
}
var zero = 0;
if (zero == 0) {
print('use "== 0" to check zero');
}
関数
Dartでは戻り値がvoidの時は省略して書きます。
また、functionという文字も不要です。
// JavaScript
function fn() {
return true;
}
// Dart
fn() {
return true;
}
// can also be written as
bool fn() {
return true;
}
非同期処理
非同期処理においてコールバック関数は重要な要点です。
Dartにはアロー関数が存在しないので、少し書き方が異なりますが大まかには一緒です。
// JavaScript
fetch(url)
.then(response => response.json())
.then(responseJson => {
const ip = responseJson.origin;
return ip;
});
// Dart
http.get(url).then((response) {
String ip = jsonDecode(response.body)['origin'];
return ip;
});
ただし、(ip) => print(ip)のように1行だけの関数はアロー関数のように書くことができます。
// Dart
final example = new Example();
example
._getIPAddress()
.then((ip) => print(ip))
.catchError((error) => print(error));
asyncとawait
JavaScriptとDartでは使用方法は基本的に同じですが、宣言する場所が若干違います。
// JavaScript
async function _getIPAddress() {
const url = 'https://httpbin.org/ip';
const response = await fetch(url);
...
}
// Dart
Future<String> _getIPAddress() async {
final url = 'https://httpbin.org/ip';
final response = await http.get(url);
...
}
感想
今回はDart文法を学習していきましたが、静的型付けが魅力の一つだなと思いました。
次回はFlutterについて本格的にやっていこうと思います!
次回もお楽しみに✨
Author And Source
この問題について(ReactNative開発者のためのFlutter入門~文法編~), 我々は、より多くの情報をここで見つけました https://qiita.com/M01tyan/items/8e66c42540c08ec1f74e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .