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

[DevFest Kobe]Accelerate Flutter Apps Developme...

[DevFest Kobe]Accelerate Flutter Apps Development+DroidconKE 2019 Recap

This is my presentation file on DevFest Kobe 2019.

#DevFest19
#DevFestKobe
#Flutter
#Flutterjp
#mobile

Kenichi Kambara

December 15, 2019
Tweet

More Decks by Kenichi Kambara

Other Decks in Technology

Transcript

  1. About me • Mobile App Development • Technical Speeches •

    Droidcon UK/FR/NL/ES/SH/KE • Devoxx UA • GDG DevFest Pisa • Developers Summit • Android Bazaar and Conference • StackOverflow DevDays • Cloud Days • Google I/O Extended Tokyo •Technical Writings •[Official] NTT TechnoCross (Evangelist) •[Private] iplatform.org Kenichi Kambara
  2. 1. User Interface 2. IDE & Tools 3. Coding 4.

    Productivity Tips for Speed Up
  3. 1. User Interface 2. IDE & Tools 3. Coding 4.

    Productivity Tips for Speed Up
  4. Text Column Dropdown Button Text Field Raised Button Dropdown Button

    Text Field Scaffold AppBar Body
 (Container) Top-Down Approach 
  5. Implementing with Dart  •Implicit Widget •No need AnimationController (using

    setState()) •Customization: Moderate
 •Transition Widget •Requires AnimationController •Customization: Middle •Explicit Widget •Requires AnimationController •Customization: High Implicit Widget Transition Widget
  6. Code Sample (Implicit Widget)  body: Center( child: AnimatedOpacity( opacity:

    _visible ? 1.0 : 0.0, duration: Duration(milliseconds: 2000), child: Image.asset('images/chara.png')), ), floatingActionButton: FloatingActionButton( onPressed: () { setState(() { _visible = !_visible; }); }, tooltip: ‘Switch Opacity', child: Icon(Icons.flip), ),
  7. Flare  Importing Flare data (*.flr) and Coding return Scaffold(

    appBar: AppBar( title: Text(widget.title), ), body: Center( child: FlareActor( "assets/sample.flr", animation: "sample01", fit: BoxFit.contain, )), ); } main.dart
  8. Stateless Widget  class MainPage extends StatelessWidget { @override Widget

    build(BuildContext context) { return Container(); } }
  9. Stateful Widget  class SubPage extends StatefulWidget { @override _SubPageState

    createState() => _SubPageState(); } class _SubPageState extends State<SubPage> { @override Widget build(BuildContext context) { return Container(); } }
  10. Animation  class AnimPage extends StatefulWidget { @override _AnimPageState createState()

    => _AnimPageState(); } class _AnimPageState extends State<AnimPage> with SingleTickerProviderStateMixin { AnimationController _controller; @override void initState() { _controller = AnimationController(vsync: this); super.initState(); } @override void dispose() { _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Container(); } }
  11. In Kenya… •UBER Trouble (Called UBER, but…) •Kenya VISA Trouble

    (Applied, but…) •“Pay For Me” Trouble (On the street.) Please feel free to talk to me later.