/teach_on_mars

Test Flutter App TeachOnMars

Primary LanguageDart

Teach On Mars - Flutter Interview Project ๐Ÿš€


โš ๏ธโš ๏ธโš ๏ธ IF RUN ON THE WEB โš ๏ธโš ๏ธโš ๏ธ

If you want to run the project on the web, you should request an access by following this link: https://cors-anywhere.herokuapp.com/corsdemo


Code Preview ๐Ÿ“ธ

My feedback ๐Ÿ”ฅ

This exercice was very good. Covering all the essentials in order to create a good Flutter App with today's standards. I was totaly new to the Very Good Core template, the Freezed package as well as unit tests. I think I've done a good job coping with those new elements. There is so much more to learn for unit testing, I will most certainly develop more this aspect.

I am available for any questions either by phone or email :


Instructions ๐Ÿ‘ฉโ€๐ŸŽ“

Write a simple mobile application composed of a main screen which is a list of widgets and a detail screen. There are two kinds of widgets :

  • The picture
  • The post

Design ๐Ÿ“ธ

Alt text

https://www.figma.com/file/rwi8v7dlTF0uHptuG9uKzG/Test-technique

(if you use an account to login (or subscribe, itโ€™s free) youโ€™ll get access to the inspector). The application will use the following REST API to get its data: https://interview-dev.teachonmars.com/interview-api.php

Here is a sample data returned by this API:

[
    {
        "id": "64351eb7e34c4",
        "type": 2,
        "title": "No-Brainer",
        "picture": {
            "width": 1200,
            "height": 800,
            "url": "https://picsum.photos/1200/800"
        },
        "author": "Romain Briaux"
    },
    {
        "id": "64351eb7e35fd",
        "type": 1,
        "title": "Jumping the Gun",
        "excerpt": "Douglas figured the best way to succeed was to do the opposite of what he'd been doing all his life...",
        "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam egestas imperdiet sapien, aliquam cursus est vehicula sit amet. Aliquam et eleifend quam. Vestibulum at congue lacus. Suspendisse tincidunt sagittis libero, vel iaculis nulla porta a. Curabitur ac urna nec velit suscipit commodo. Suspendisse potenti. Aliquam cursus velit ut est aliquam vehicula. Morbi tempus varius mi volutpat semper. Curabitur blandit, quam ut tristique vulputate, odio felis eleifend eros, at varius orci sapien non risus. Cras at leo eget nisi suscipit congue. Aliquam commodo pretium nisl, quis mollis dui eleifend et. Cras sed pulvinar urna.\n\nSed at sem molestie, luctus urna in, placerat libero."   
    }
]

Instructions ๐ŸคŒ

Your app MUST:

  • Use the Very Good Core template โœ…
  • Use the Bloc package โœ…
  • Use the Freezed package โœ…
  • Use Material 3 theming capabilities โœ…
  • Show a loader while requesting the API โœ…
  • Show an appropriate error message if the API fails โœ…
  • Go the the detail page when a widget is tapped โœ…

Your app MAY (itโ€™s just bonus points, make none of them, only a few or all. You can even add anything else that itโ€™s not mentioned ๐Ÿ˜‰:

  • Have unit tests โœ…
  • Be responsive and work on a web browser โœ…
  • Use the internationalization provided by Very Good Core (translate the title of the app bar and/or any other text thatโ€™s coming from the app and not from the API) โœ…
  • Make the list an infinite scroll (just call again the api when you arrived at bottom) โœ…
  • Use animations โœ…
  • Use a cache library for the images โœ…
  • Have a splash screen โœ…
  • Have a settings button to switch between light and dark mode โœ