It’s already halfway my internship, times flies huh! But till now I learned a lot and practiced a lot.
Last week I talked about Scrum and the weekly Sprint, so last Sunday morning was our first sprint meeting, but wait! I forgot to tell you about those meeting right?. Let’s first do some recap, Scrum simply a framework that helps to manage Software projects which contains three of three. Three roles which are the product owner, the scrum master and the team. Three documents which are the product backlog, the sprint backlog, and the burndown backlog. Three meeting which are the sprint planning where the product owner, scrum master and the team meet to discuss the user stories and estimate the relative sizes, the daily scrum is a brief (5 – 10 minutes) stand-up meeting – which we are doing it literally standing – where the team – and sometimes the scrum master – discuses what they have completed since the previous meeting, what they’re working on and if anyone need help with something, the last meeting is the sprint review and retrospective meeting which occurs at the end of the sprint, this when the team demonstrate the completed work to the product owner and then the team discuss what type of improvement they can do and implement in the next sprint.
In our sprint planning meeting we discussed the backlog we worked on it last week and defined which user stories we will work on it this sprint and size the time needed for each one, we even have a board to keep track of what we are doing. My tasks included working with bottom navigation, create multiple activities and fragments.
According to Material Design website “Bottom navigation bars display three to five destinations at the bottom of a screen. Each destination is represented by an icon and an optional text label. When a bottom navigation icon is tapped, the user is taken to the top-level navigation destination associated with that icon.”. If you open your Instagram app, the bar you will see at the bottom is an example of the bottom navigation bar. There are many libraries to implement the bottom navigation bar, even google provide a support library, but for our purposes, we decided to use an open source library called ahbottomnavigation , the library github page provide a good example on how to use the library, you can check it if you want.
I spent a lot of times trying to figure out how to use this library but eventually, I designed a simple bottom navigation bar with three tabs. After that I needed to create three fragments and link each fragment with its corresponded tab, so when I click on a tab its correspond fragment should appear and after lots of time I linked them and that was a small victory moment for me.
Now let me give you a brief explanation of fragments. According to the Android Developers website “A Fragment represents a behavior or a portion of user interface in a FragmentActivity. You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities. You can think of a fragment as a modular section of an activity, which has its own lifecycle, receives its own input events, and which you can add or remove while the activity is running (sort of like a “sub activity” that you can reuse in different activities).” So as it appears using a fragment gives you more flexibility than using an activity, you can use a single activity for your whole app and the rest of your app functionality you can accomplish using fragments. Using fragments provides you with modularity where you can divide complex activity code across fragments for better organization and maintenance, reusability where you can share fragments across multiple activities and many other benefits of using fragments. To keep in mind you always need at least one activity to act as a host for your fragment and the activity lifecycle affected directly the fragment lifecycle, as an example if your activity is paused or destroyed so all the fragments, but when the activity is in resumed lifecycle (activity is running), you can manipulate each fragment independently. For more information about the fragment, you can check the documentation in the Android Developer website and this awesome tutorial.
My other task was to create a RecyclerView in the first fragment to display some data, these data come from the server which Ayman had been working on it. Ayman creates the DTOs and gave it to me to implement it in my code so I can be able to communicate and fetch data from the server. DTO stands for “Data Transfer Object” which is an object that carries data between process. Since each call to any remote interface – such as the server – is expensive, response to each call should bring as much data as possible. So for a particular task that needs data and requires multiple requests, these data can be combined and encapsulate in a DTO so that only one request can bring all required data.
I am still working on this task, I already created the RecyclerView and I am still working on fetching data from the server and trying to understand how to deal with all of this.
In Narbase they had been using MVVM for a while now as I heard. MVVM stands for “Model-View-ViewModel” which is a software architectural pattern. It’s simply a way to organize your codes to be more testable, maintainable and uneatable and more. So how we can implement MVVM in our codes that will be a topic for another post. So that’s it for this week.
Till next week.