All Projects → m3sv → Flutter For Android Developers

m3sv / Flutter For Android Developers

Licence: mit
Compilation of Flutter materials for Android developers

Programming Languages

dartlang
94 projects

Projects that are alternatives of or similar to Flutter For Android Developers

Byte Of Python
Beginners book on Python - start here if you don't know programming
Stars: ✭ 1,713 (+251.02%)
Mutual labels:  beginner-friendly, tutorial
Espressif
all espressif stuff will committed here
Stars: ✭ 477 (-2.25%)
Mutual labels:  tutorial, example
Learn Elm Architecture In Javascript
🦄 Learn how to build web apps using the Elm Architecture in "vanilla" JavaScript (step-by-step TDD tutorial)!
Stars: ✭ 173 (-64.55%)
Mutual labels:  beginner-friendly, tutorial
Phoenix Todo List Tutorial
✅ Complete beginners tutorial building a todo list from scratch in Phoenix 1.5.3 (latest)
Stars: ✭ 65 (-86.68%)
Mutual labels:  beginner-friendly, tutorial
Pygame tutorials
Code to go along with lessons at http://kidscancode.org/lessons
Stars: ✭ 363 (-25.61%)
Mutual labels:  tutorial, example
Collaboration For Beginners
A Beginner's Guide to Contributing in an Open Source Project.
Stars: ✭ 86 (-82.38%)
Mutual labels:  beginner-friendly, tutorial
Project Minimek
A sample app to demonstrate various useful Redux techniques, accompanying the blog series at http://blog.isquaredsoftware.com/series/practical-redux
Stars: ✭ 266 (-45.49%)
Mutual labels:  tutorial, example
Wasm By Example
Wasm By Example is a website with a set of hands-on introduction examples and tutorials for WebAssembly (Wasm)
Stars: ✭ 226 (-53.69%)
Mutual labels:  tutorial, example
Javascript Idiosyncrasies
A bunch of Javascript idiosyncrasies to beginners.
Stars: ✭ 353 (-27.66%)
Mutual labels:  tutorial, example
Javascript Journey
Source code for blog post Journey from procedural to reactive JavaScript with stops
Stars: ✭ 309 (-36.68%)
Mutual labels:  tutorial, example
Python Tutorial
A Python 3 programming tutorial for beginners.
Stars: ✭ 647 (+32.58%)
Mutual labels:  beginner-friendly, tutorial
Go Todo Rest Api Example
📚 A RESTful API example for simple todo application with Go
Stars: ✭ 385 (-21.11%)
Mutual labels:  tutorial, example
Lv examples
Examples, tutorials and applications for the LVGL embedded GUI library
Stars: ✭ 246 (-49.59%)
Mutual labels:  tutorial, example
Python For Absolute Beginners Course
Code samples and other handouts for our course.
Stars: ✭ 1,352 (+177.05%)
Mutual labels:  beginner-friendly, tutorial
Wordpress Plugin Boilerplate Tutorial
Tutorials and Examples for WordPress Plugin Boilerplate, a foundation for WordPress Plugin Development.
Stars: ✭ 232 (-52.46%)
Mutual labels:  tutorial, example
Vaporschool
Learn how to build vapor applications from rookie to champion in a constructive way!
Stars: ✭ 259 (-46.93%)
Mutual labels:  tutorial, example
Learning Cmake
learning cmake
Stars: ✭ 2,524 (+417.21%)
Mutual labels:  tutorial, example
Learn To Send Email Via Google Script Html No Server
📧 An Example of using an HTML form (e.g: "Contact Us" on a website) to send Email without a Backend Server (using a Google Script) perfect for static websites that need to collect data.
Stars: ✭ 2,718 (+456.97%)
Mutual labels:  tutorial, example
Avenging
MVP pattern example on Android: no Dagger or RxJava example
Stars: ✭ 279 (-42.83%)
Mutual labels:  tutorial, example
Learning Rust
Rust 学习之路 > Rust Programming Tutorial, include articles, interview, example, problems.
Stars: ✭ 376 (-22.95%)
Mutual labels:  tutorial, example

⚠️ [Deprecated] I no longer use, nor interested in Flutter. If you're looking for an up-to-date resource on Flutter goodies then check awesome-flutter. Cheers.

Flutter for Android developers

The tutorial assumes that you are at least familiar with Android development and know what scary words like View, ViewGroup, Java, Kotlin mean.

Table of contents

Overview of Flutter

Installing Flutter

Tools/IDE

Working with an editor

Learning Dart

Flutter introductory resources

Architecture and state management

Dependency injection

Navigation & routing

Flutter uses Navigator for navigation.

Handling incoming intents

Handling intents from external applications

Network requests and Serialization

No, there's no Retrofit or Gson/Moshi in Flutter.

Persistence

Reactive/Rx

Dart is a reactive language out of the box, you can either use Dart's Streams or RxDart if you're familiar with ReactiveX.

Android functionality and corresponding plugins

Android Flutter
AlarmManager android_alarm_manager
Intent android_intent
Battery battery
Camera camera
Network connectivity
Build device_info
Google maps google_maps_flutter
Google Sign-in google_sign_in
Image picker image_picker
Local authentication local_auth
PackageInfo package_info
FileProvider path_provider
App shortcuts quick_actions
Sensors sensors
Sharing data share
SharedPreferences shared_preferences
Launch URL url_launcher
ExoPlayer/MediaPlayer video_player
WebView webview_flutter

Activity/Fragment?

Both activities and fragments are represented as a Widget in Flutter.

Read more: What are the equivalent of activities and fragments in Flutter?

Lifecycle?

How do I listen to Android activity lifecycle events?

Orientation change?

How do I handle landscape transitions in Flutter?

Declarative vs Imperative

In the imperative style, you would typically go to ViewB’s owner and retrieve the instance b using selectors or with findViewById or similar, and invoke mutations on it (and implicitly invalidate it). For example:

// Imperative style
b.setColor(red)
b.clearChildren()
ViewC c3 = new ViewC(...)
b.add(c3)

In the declarative style, view configurations (such as Flutter’s Widgets) are immutable and are only lightweight “blueprints”. To change the UI, a Widget triggers a rebuild on itself (most commonly by calling setState() on StatefulWidgets in Flutter) and constructs a new Widget subtree.

// Declarative style
return ViewB(
  color: red,
  child: ViewC(...),
)

Why Flutter uses declarative UI

Android views and their corresponding Flutter widgets

Flutter contains much more widgets than Android SDK, you can discover them here and in Widget index.

The most common Android views and their corresponding Flutter widgets are here:

Android Flutter
TextView Text
EditText TextField
ExpandableListView ListView + ExpansionTile
Button RaisedButton
BorderlessButton FlatButton
CalendarView
CheckBox Checkbox
DatePicker showDatePicker
FrameLayout Stack
GridView GridView
HorizontalScrollView ListView
ImageButton RaisedButton/FlatButton
ImageView Image
LinearLayout Column/Row
ListView ListView
NumberPicker Custom Widget
PopupMenu PopupMenuButton
ProgressBar LinearProgressIndicator
RadioButton/RadioGroup Radio
RatingBar How to create rating bar
RelativeLayout
ScrollView ListView
SeekBar Slider
Spinner DropDownButton
Switch Switch
TableLayout Table
TimePicker showDatePicker
Toast fluttertoast
Toolbar AppBar
RecyclerView ListView with ListView.builder()
ViewPager PageView(Tutorial)
SwipeRefreshLayout RefreshIndicator(Tutorial)
CardView Card
ConstraintLayout
CoordinatorLayout Scaffold
AppBarLayout AppBar within Scaffold
ExpandableWidget ExpansionTile
FloatingActionButton FloatingActionButton within Scaffold
DrawerLayout Drawer within Scaffold
TabLayout TabBar in conjunction with TabBarView
TextInputLayout TextFormFiled
SnackBar SnackBar

Hint on an EditText

To add a hint to an EditText(TextField) you add InputDecoration to it:

body: Center(
  child: TextField(
    decoration: InputDecoration(hintText: "This is a hint"),
  )
)

Custom Views/Canvas drawing

Flutter has similar to Android Canvas API.

To create custom widgets you compose smaller widgets.

Gesture and click listeners

Glide/Picasso/Fresco(Image loading)?

Flutter is able to load images from URL out of the box, all you have to do is use the Image.network constructor, like this:

Image.network(
  'https://raw.githubusercontent.com/flutter/website/master/src/_includes/code/layout/lakes/images/lake.jpg',
)

It also supports gifs!

Unfortunately, Image.network does not support placeholders and/or caching. To achieve those, please see the following recipes:

Animations

Resource management

Theming

How do I theme my app?

Gradle

Flutter uses Dart's own build system, and the Pub package manager. You can read more about here.

Plugins/Libraries

Packages allow you to use Flutter packages or access underlying platform features in a form of a library.

Local notifications

For local notifications you would have to rely on a 3rd party plugin.

Firebase

Facebook

To Log in with Facebook, use flutter_facebook_login plugin.

Communicating with native platform

NDK

How do I use the NDK in my Flutter application?

Background processing

Testing and profiling, DevTools

Flavors and deployment

Samples and tutorials

Community

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].