3. 1. 이 발표는 Flutter가 개발자의 삶과 건강에 미치는 긍정적인 영향에 대한 개인적인 견해를 다룹니다. 다른
의견도 존중하며, 여기서 제시된 내용은 일반화하기 어려울 수 있습니다.
2. 발표에서는 Flutter 사용이 작업량 감소, 스트레스 완화, 워크-라이프 밸런스 개선 등을 통해 개발자의 정신
건강에 이점을 제공한다고 주장할 예정입니다.
3. 활발한 Flutter 커뮤니티와 자료가 개발자에게 지원 체계를 제공하여 정신적 안정에 기여한다는 주장을
펼칠 것입니다.
4. 위 내용들은 개인적인 경험과 의견을 바탕으로 한 것이며, 다른 관점과 반론도 있을 수 있음을 인정합니다.
5. 발표 중에는 실제 사례와 개발자 경험담을 활용하여 주장을 뒷받침할 예정이지만, 이러한 경험 사례가
일반화되기 어려울 수 있습니다.
⚠ 주의사항
16. import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class _MyHomePageState extends State<MyHomePage> {
static const platform = MethodChannel('samples.flutter.dev/battery');
// Get battery level.
String _batteryLevel = 'Unknown battery level.';
Future<void> _getBatteryLevel() async {
String batteryLevel;
try {
final int result = await platform.invokeMethod('getBatteryLevel');
batteryLevel = 'Battery level at $result % .';
} on PlatformException catch (e) {
batteryLevel = "Failed to get battery level: '${e.message}'.";
}
...
17. class MainActivity: FlutterActivity() {
private val CHANNEL = "samples.flutter.dev/battery"
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).setMethodCallHandler {
call, result -> // This method is invoked on the main thread.
if (call.method == "getBatteryLevel") {
val batteryLevel = getBatteryLevel()
if (batteryLevel != -1) {
result.success(batteryLevel)
} else {
result.error("UNAVAILABLE", "Battery level not available.", null)
}
} else {
result.notImplemented()
}
}
}
}
18. @UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let controller : FlutterViewController = window?.rootViewController as! FlutterViewController
let batteryChannel = FlutterMethodChannel(name: "samples.flutter.dev/battery", binaryMessenger: controller.binaryMessenger)
batteryChannel.setMethodCallHandler({
[weak self] (call: FlutterMethodCall, result: FlutterResult) -> Void in // This method is invoked on the UI thread.
guard call.method == "getBatteryLevel" else {
result(FlutterMethodNotImplemented)
return
}
self?.receiveBatteryLevel(result: result)
})
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
23. class User {
final String name;
final int age;
User(this.name, this.age);
void printUserInfo() => print('User Name: $name, Age: $age'); // 객체의 정보를 출력하는 메소드
}
Future<String> fetchUserData() {
// 비동기 작업을 시뮬레이션하기 위해 Future.delayed 사용
return Future.delayed(Duration(seconds: 2), () => 'John Doe,30');
}
void main() async {
print('Fetching user data...');
var userData = await fetchUserData(); // 비동기 함수 호출 및 대기
var userDetails = userData.split(',');
var user = User(userDetails[0], int.parse(userDetails[1]));
user.printUserInfo(); // 'User Name: John Doe, Age: 30' 출력
}