Flutter Development: Day 0
Tags: flutter, dart, ios, android
Published: 2019-01-02 21:14:16

---
title: Flutter Development: Day 0
published: true
description: 
tags: Flutter, Dart, iOS, Android
---

## Goal

To write a music player app in Flutter and release it for Android and iPhone

## Back Story

I am the owner of a music streaming server called [mStream](https://github.com/IrosTheBeggar/mStream).  The goal of mStream is to be a self hosted music server anyone can use.  Currently, mStream Server is stable and in a good place.

The thing users ask me for the most is a mobile app for the server.  The ideal mobile app would be able to automatically sync music between the server and phone and be able to stream music on demand.  There should also be an option to transcode streams to avoid using too much data. 

[I have tried to make an Android app in the past.](https://github.com/IrosTheBeggar/mstream-android-app/issues)  The app currently works but is has bugs and the UI is clunky.  Turns out writing apps for Android is incredibly time consuming.  I even had help from a friend and professional Android developer and the project still never got very far. And the idea of having to redo the whole thing to make the iOS app just put me off from app development for a while.

## The Plan

Today's goal is to get the Flutter environment running and to run an example app iOS and Android.

The long-term plan to is to build the app in several steps

**Step 0:** Research libraries needed to build this app.  [Dart has a package manager to makes searching for cross platform libraries easy](https://pub.dartlang.org/)

**Step 1:** Get the app to connect to the server login. Then get the File Explorer, Playlists, Albums, Artists, and Starred APIs connected.

**Step 2:** Implement a file sync function between server with the phones filesystem

**Step 3:** Add music streaming to the app.

## Today's Results

I was able to get the Flutter environment up and running by following the instructions at: https://flutter.io/docs/get-started/install

I was VERY impressed with the quality of the install guide for OSX.  The instructions were clear, concise, and easy to follow. They even gave explanations when the was some mysterious commands to be cut and pasted into the prompt:

![Example of a good docs](https://thepracticaldev.s3.amazonaws.com/i/74tn1zcrulqrcgqp7vm0.png)

The CLI tool 'flutter doctor' made it easy to debug problems when installing Android Studio and XCode.  The hardest part of the installation process was installing all the necessary dependencies for Android Studio. 

Once all the dependencies were installed, I opened up Visual Studio Code and installed their Flutter plugin. The Flutter plugin comes with a function to build an example project. 

![Visual Studio Code Drop Down Menu](https://thepracticaldev.s3.amazonaws.com/i/3dxwwlcrqpa3p5irr261.png)

I was able to run the example project on both and iPhone and Android Emulator immediately.  

![iOS emulator](https://thepracticaldev.s3.amazonaws.com/i/9s084i4pv3j9gc31p80c.png)

I spent a lot less time on installation than I thought I would.  Within a few hours I went from a clean system running an app on iOS and Android.  I'm hoping the rest of the development cycle is as easy as this.