dwyl / learn-flutter

๐Ÿฆ‹ Learn how to use Flutter to Build Cross-platform Native Mobile Apps
https://flutter.dev
GNU General Public License v2.0
73 stars 8 forks source link

[PR] Updating README with latest version. #69

Closed LuchoTurtle closed 1 year ago

LuchoTurtle commented 1 year ago

closes #68

Initially thought I could tackle this in the morning but it took much longer than expected since I tried to actually understand what I was learning and writing about. Much of the information in the README was either insufficient or outdated, so I had to quite literally remake the whole README from scratch.

I'm still wanting to add a few more sections and a simple application demo to showcase most of the principles showcased in the README.

I'm going to additionally remake some of the guides that are present, as well. So this could take a little while.

nelsonic commented 1 year ago

@LuchoTurtle this PR is looking great so far! ๐Ÿ˜ You're doing a superb job of re-writing this guide and it will be immensely useful to us and the wider community. ๐ŸŽ‰

Quick Feedback: please comment as your adding things so that anyone following along can see what you're learning and push your code regularly so you don't accumulate too much Work-in-Progress.

Also, try to reference the issue in your commit messages so that the history is easier to follow.

feat: Add state management. #68

If we can be consistent with referencing issues in our commits then it makes it easier for people in the future to understand the changes when they git blame. ๐Ÿ’ญ

Note: I need to get better at this myself. Not picking on you specifically. Just something I noticed. ๐Ÿ‘Œ


Suggested reading on WIP: In Agile Development (so Scrum, Kanban, etc.) Work-in-Progress is classed as "Waste" ... I know it's harsh but it's fact. Basically every half-finished Pull Request I've worked on is "wasted effort" https://agilevelocity.com/lean-economics-101-the-power-of-wip-limits If the term "Work In Progress" is new to you, a more real-world example might be helpful: https://opexlearning.com/resources/5-practical-examples-of-work-in-process/26648/ And for a more in-depth scientific article, see: "Lean and agile manufacturing for work-in-process (WIP) control": https://www.sciencedirect.com/science/article/pii/S2214785320401907

LuchoTurtle commented 1 year ago

The PR should be almost done, at this point. I'm adding a demo app and a walkthrough so it goes in line with the rest of the learn-X repositories. I'm currently in the process of testing the app and widget to get decent coverage going, although I'm having trouble with Widget Testing and with dependency injection. Do not worry, this will all be documented in the README itself, so after I crack on with this, I will document what I did ๐Ÿป

LuchoTurtle commented 1 year ago

I just pushed the last changes. There is a demo app inside the demo_app folder that is fully tested. I've added a testing guide with coverage to the README.

The other PRs don't really make sense to be added to this repository. One seems to be an unfinished change to an app that shows random GIFs, which isn't present in this repo now. The other relates to env variables, which I personally don't think is beginner-friendly and a concept that isn't really needed for anyone that is starting Flutter. But that's just my opinion ๐Ÿ˜„ .

Hopefully, this is good enough! @nelsonic ๐Ÿ˜„

nelsonic commented 1 year ago

This is going to require a bit more time to review. I'm going to do the full setup on my newer MBP and go through each step from first principals.

nelsonic commented 1 year ago

Updating the screenshot in the README.md as it shows the trend much clearer: https://trends.google.com/trends/explore?date=today%205-y&q=flutter,react%20native image

nelsonic commented 1 year ago

https://www.visualcapitalist.com/iphone-majority-us-smartphones/ iphone-americas-top-smartphone

nelsonic commented 1 year ago

In Europe, iPhone ownership/use correlates strongly to wealth of the nation; Monaco and Norway the two countries with the highest GDP/Capita top the table with 69.91% and 68.89% respectively. https://mezha.media/en/2022/10/10/percentage-of-iphone-users-in-different-european-countries/ image

nelsonic commented 1 year ago

Wow, Android Studio is massive!! ๐Ÿ˜ฎ

image
nelsonic commented 1 year ago
image image image image image

Google APIs ARM 64 v8a System Image 1.41 GB ๐Ÿคฏ

image

Our way or the high way ...

image

Downloading ... (time to re-fill my water bottle ... โณ )

image
nelsonic commented 1 year ago
image image image image image image
nelsonic commented 1 year ago
cd demo_app

flutter doctor
Running "flutter pub get" in flutter_tools...                       6.9s
Doctor summary (to see all details, run flutter doctor -v):
[โœ“] Flutter (Channel stable, 3.3.8, on macOS 13.0.1 22A400 darwin-arm, locale en-GB)
[!] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    โœ— cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    โœ— Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[โœ—] Xcode - develop for iOS and macOS
    โœ— Xcode installation is incomplete; a full installation is necessary for iOS development.
      Download at: https://developer.apple.com/xcode/download/
      Or install Xcode via the App Store.
      Once installed, run:
        sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
        sudo xcodebuild -runFirstLaunch
    โœ— CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
[โœ“] Chrome - develop for the web
[โœ“] Android Studio (version 2021.3)
[โœ“] VS Code (version 1.73.1)
[โœ“] Connected device (2 available)
[โœ“] HTTP Host Availability

! Doctor found issues in 2 categories.
nelsonic commented 1 year ago
flutter doctor --android-licenses
Android sdkmanager not found. Update to the latest Android SDK and ensure that the cmdline-tools are installed to resolve this.
nelsonic commented 1 year ago
image
nelsonic commented 1 year ago
image
nelsonic commented 1 year ago
Accept? (y/N): y
All SDK package licenses accepted
nelsonic commented 1 year ago
image image image image image
nelsonic commented 1 year ago
image

No Thanks.

nelsonic commented 1 year ago
flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[โœ“] Flutter (Channel stable, 3.3.8, on macOS 13.0.1 22A400 darwin-arm, locale en-GB)
[โœ“] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[โœ“] Xcode - develop for iOS and macOS (Xcode 14.1)
[โœ“] Chrome - develop for the web
[โœ“] Android Studio (version 2021.3)
[โœ“] VS Code (version 1.73.1)
[โœ“] Connected device (2 available)
[โœ“] HTTP Host Availability

โ€ข No issues found!
LuchoTurtle commented 1 year ago

@nelsonic I'm going to be reviewing this README for typos and formatting and will commit them to make your life easier.

LuchoTurtle commented 1 year ago

Formatted and fixed typos on README. Also fixed CI (working directory was changed with this PR).

codecov[bot] commented 1 year ago

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@b665295). Click here to learn what that means. The diff coverage is n/a.

@@           Coverage Diff            @@
##             main       #69   +/-   ##
========================================
  Coverage        ?   100.00%           
========================================
  Files           ?         4           
  Lines           ?        70           
  Branches        ?         0           
========================================
  Hits            ?        70           
  Misses          ?         0           
  Partials        ?         0           

:mega: Weโ€™re building smart automated test selection to slash your CI/CD build times. Learn more