--- title: "Starting With Flutter: My Experience" date: 2018-06-17T09:06:47-07:00 draft: true --- - Wanted to write applications for business - Don't have time to get into Java, Android, Swift, iOS, etc. - Definitely still think that the future is in mobile applications. - Enter Flutter - Provides a beautiful framework for producing widget trees that render UIs - Wonderfully easy to build a Material application - Show code for hello world - Expressive DSL for specifying mobile applications # My Use Case I've always wanted to write mobile applications. However, I had a lot of barriers that stood in my way. Barriers to entry that while valid are a bit more archaic of reasons to not get into mobile. For instance, building a feature for your application, if your application is on more than one platform, often has to be done twice. Once in Java, the language that all developers love to hate (sorry Java developers) and once in Swift for iOS. Having to rebuild features is certainly not an attractive option, because our most basic resource we have as developers is our time. Enter Flutter, a cross-platform framework built by the engineers at Google that solves the daunting problem of feature RE-engineering. Flutter tackled exactly what stood in my way: my problem of my lack of time. Flutter gives engineers just one thing to learn, and that is Dart. Dart is a programming language developed by Google, and it's syntax should be familiar to anyone that has written or been around any C-style languages. With just one meager thing to learn, I feel the time has come for me to get into mobile development. # Expressive, Beautiful Widget Trees in Flutter When using Flutter, every part of an application is a widget. Each widget represents a node in a tree, and each widget has the responsiblity of telling the Flutter runtime how to render. This DOM-like approach to application building provides a beautiful means to specify an application in a tree format, and this hierarchical structure allows for easy-to-understand code. Take, for example, this password input widget which ```dart final passwordInput = TextField() ```