Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sneak peek at Flutter from iOS developer perspe...

Sneak peek at Flutter from iOS developer perspective

A talk by Bohdan Mihiliev.

MacPaw Tech Talks

September 05, 2019

Transcript

32 slides
  1. Sneak peek at Flutter from the iOS developer’s perspective 1.

    Disclamer; 2. Why I picked Flutter; 3. Dart vs Swift; 4. Flutter vs ReactNative; 5. My story with the app: from the idea to AppStore & PlayMarket; 6. F.A.Q; 7. Q&A.
  2. Disclamer • This is just a sneak peek. We won’t

    cover Flutter for the web. Or the best practices with Flutter. • All the information you will hear is based on my experience with Flutter. Yours can be different; • Everything that wasn’t created by me (some benchmarks and additional info) has credits and links on the full articles.; • Some stuff worked in my case. Do not get upset if doesn’t work in yours.
  3. No pain no gain! • New language dart • Declarative

    UI • Everything is a widget (AnimatedOpacity, Padding, Baseline…)
  4. DART 1. Created by Google 2. Current version is Dart

    2.4.0 3. First appeared on October 10, 2011 https://dart.dev
  5. SWIFT 1. Developed by Apple 2. Stable release 5.0.2 3.

    First appeared on June 2, 2014; 5 years ago https://docs.swift.org/swift-book/
  6. FEATURE DART SWIFT Optionals ❤ Tuples ❤ Mixins ❤ Extension

    ❤ Powerful enums ❤ Structs ❤ Futures ❤ Streams ❤
  7. What is the same? Type inference Named parameters Unnamed parameters

    Single inheritance Multiple conformance Error handling Generics
  8. What I don’t like • const, final, • 100500 import…

    • Null safety? • Massive constructions • Pyramid of doom
  9. Positioned( top: position.top, left: position.left, child: Container( width: width, child:

    Card( child: Column( children: filteredSuggestions.map((T suggestion) { return Row(children: <Widget>[ Expanded( child: InkWell( child: itemBuilder(context, suggestion), onTap: () { setState(() { if (submitOnSuggestionTap) { final String newText = suggestion.toString(); textField.controller.text = newText; focusNode.unfocus(); itemSubmitted(suggestion); if (clearOnSubmit) { clear(); } } else { final String newText = suggestion.toString(); textField.controller.text = newText; textChanged(newText); } }); })) ]); }).toList(growable: false), ))))
  10. Future<void> createAndSendTask() async { final newCard = GloCard(boardId: boardId, columnId:

    columnId, name: _taskTitleText); final createdCard = await create(newCard, boardId); final attachment = await upload(boardId: boardId, cardId: createdCard.id, image: _image); createdCard.description = CardDescription(text: ‘[$_descriptionText](${attachment.url}).'); await updateCard(createdCard, widget.boardId); }
  11. Lambda functions & Strings interpolation final List<String> list = <String>['apples',

    'bananas', 'oranges']; list.forEach((String item) => print('$ {list.indexOf(item)}: $item'));
  12. Class constructors class Person { Person({this.name, this.age, this.height}); final String

    name; final int age; final double height; } final Person created = Person(name: 'Bohdan', age: 24, height: 195);
  13. Flutter React Native Language Dart JavaScript Developers Goggle Facebook Initial

    Release 2017 2015 Native Performance Superior Good Documentation Precise, clear, and up- to-date Up-to-date and imprecise Who uses Alibaba, Reflectly, Tencent … Facebook, Instagram, Walmart, Wix …
  14. Where to learn • Flutter official cite - https://flutter.dev/ •

    List of communities - https://flutter.dev/community • Udemy recommendation 1 - https://www.udemy.com/dart-and-flutter-the- complete-developers-guide/ • Udemy recommendation 2 - https://www.udemy.com/learn-flutter-dart-to-build- ios-android-apps/ • List of interesting resources on GitHub - https://github.com/Solido/awesome- flutter • Telegram Chanel UA: https://t.me/artflutter
  15. F.A.Q. • Bit code support? • Watch app support? •

    What I’ve got after the build? • Xcode project? Android Project?

More Decks by MacPaw Tech Talks

Other Decks in Programming