<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Aditya Putra Pratama on Medium]]></title>
        <description><![CDATA[Stories by Aditya Putra Pratama on Medium]]></description>
        <link>https://medium.com/@aditpp?source=rss-2f91121f543f------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*tl3EzQYL9-JSlwDtcfzDng.png</url>
            <title>Stories by Aditya Putra Pratama on Medium</title>
            <link>https://medium.com/@aditpp?source=rss-2f91121f543f------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 23 May 2026 06:46:44 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@aditpp/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Gojek Bootcamp 006 — What I do in my Android Final Project?]]></title>
            <link>https://medium.com/@aditpp/gojek-bootcamp-006-what-i-do-in-my-android-final-project-9c8be1cdf1c6?source=rss-2f91121f543f------2</link>
            <guid isPermaLink="false">https://medium.com/p/9c8be1cdf1c6</guid>
            <category><![CDATA[android-app-development]]></category>
            <category><![CDATA[gojek-bootcamp]]></category>
            <category><![CDATA[gojek]]></category>
            <category><![CDATA[to-do-list]]></category>
            <dc:creator><![CDATA[Aditya Putra Pratama]]></dc:creator>
            <pubDate>Sat, 25 Apr 2020 13:05:54 GMT</pubDate>
            <atom:updated>2020-04-25T13:16:23.854Z</atom:updated>
            <content:encoded><![CDATA[<h3>Gojek Bootcamp 006 — What I do in my Android Final Project?</h3><p>Hello there, finally I was finished my Android Module in Gojek Bootcamp 006. Before we finished this module, we got the final project, which is we should develop Todo List Apps. So we should create Todo List with our version, we can implement anything that we want, but with acceptance criteria that have been specified. And now, I will share with you about my Todo List Apps, I will breakdown what I implemented in my project one by one. Let’s do that!</p><h3>About My To-Do Application</h3><p>To-Do list Application basically is an application to make a daily plan. In this project, we got basic mockups from coaches, but we free to improve and implement what we learn.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/270/1*t8k8GRThJeE1O8001M9dfQ.gif" /><figcaption>My To-Do list Application</figcaption></figure><h4>Use case</h4><ul><li>Add new task</li><li>Show the exists task</li><li>Delete task</li><li>Edit task</li><li>Add an image for the task</li><li>Search the exists task</li><li>Show current weather</li></ul><h3>Project Architecture</h3><p>In this part, I implement <a href="https://proandroiddev.com/kotlin-clean-architecture-1ad42fcd97fa"><strong>Clean Architecture</strong></a> to construct my project structure. This is one of my favorite stuff that I learn in this module. Why I choose this architecture? I think because Clean Architecture makes the project to be scalable and easy to read. This architecture also implements SRP (<a href="https://hackernoon.com/you-dont-understand-the-single-responsibility-principle-abfdd005b137"><strong>Single Responsibility Principle</strong></a>) that makes a class only has one responsibility.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/772/1*TfvX7n-OwzwpQuZ918r4ig.jpeg" /></figure><p>Above is a picture of the Clean Architecture concept. Basically Clean Architecture has a five-layer that separates class base on responsibility, so making it easier for further modification. And now let’s see how I implement that in my project.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/312/1*gggTmFNqltqCoMoiwv8q5g.png" /></figure><p>This is my directory in my project, I follow the Clean Architecture concept, so I have five directories which consist of data, domain, external, and presentation. Inside the data directory, I also have three more directory model, repository, and service. In the domain directory I have usecase, which is inside this directory, I create a class that represents the use case that I need. And then I create a external directory to contain my helper class and my extension. And the last directory is presentation, this directory contains the UI logic.</p><h3>Design Pattern</h3><p>To make my project be cleaner, I combine the Clean Architecture with MVP (<a href="https://medium.com/@cervonefrancesco/model-view-presenter-android-guidelines-94970b430ddf"><strong>Model View Presenter</strong></a>) for Design Pattern. It’s separate business logic from View. The View doesn’t know about Model so that the Presenter be a bridge between View and Model.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/227/1*UC_60ijqD9d7s-c08qHdPw.png" /></figure><p>In this project, I make Activity as View and add one more class as Presenter, And then I make a contract for communicating between View and Presenter, so View and Presenter only communicate base on contract.</p><h3>The library Makes Life Be Easier</h3><p>In the class, we learn about network calls and how to load an image in android. But I think that should implement a lot of code. For the instance, if you want to implement a network call to request some data from API, you should implement that in the background thread, after that if you want to show the data, you should move the data from background to the main thread. It needs more effort just only to make a request. So to support my To-Do list application to be easier to develop, I use some libraries like <a href="https://square.github.io/retrofit/"><strong>Retrofit</strong></a>, <a href="https://square.github.io/picasso/"><strong>Picasso</strong></a>, and <a href="https://github.com/chthai64/SwipeRevealLayout"><strong>Swipe-Reveal-Layout</strong></a>. Retrofit make your implementation be easier because you just only define interface and annotations to make a network call. Retrofit automate handle the thread, so you don’t need more effort to handle that. For example, I create a simple request to Open Weather API.</p><pre>interface WeatherService {<br>    @GET(&quot;weather&quot;)<br>    fun getWeather(<br>        @Query(&quot;q&quot;) cityName: String,<br>        @Query(&quot;appid&quot;) apiKey: String<br>    ): Call&lt;WeatherModel&gt;<br>}</pre><p>And to define the Retrofit.</p><pre>val weatherService = Retrofit.Builder()<br>    .baseUrl(WEATHER_BASE_URL)<br>    .addConverterFactory(GsonConverterFactory.create())<br>    .build()<br>    .create(WeatherService::class.<em>java</em>)</pre><p>See, it’s very simple, right?</p><p>And also I use Picasso to showing my image either from path or URL to my ImageView. To implement Picasso in your program, you just add simple code like this.</p><pre>Picasso.get().load(File(data.image)).into(itemView.ivImageTodo)</pre><p>And to provide a better user experience, I implement Swipe-Reveal-Layout to make my card can be swiped.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/453/1*EX2DMsd91XkqAW_fdcDEpA.png" /></figure><h3>Test My Apps</h3><p>The last part that I want to share with you is about how I test my application. In the class, we were given an overview of the Pyramid Test. In my project, I also implement a Unit Test and UI Test. To implement a Unit Test in my project I use JUnit and to mock my class, I use Mockito to make it easier. And to do UI Tests, I use Espresso to test my view. But I have a problem when I do test the RecyclerView. I stuck in how to test view inside the RecyclerView because RecyclerView has multiple items. I start my adventure to find how to solve that problem in Google. And again, I get my solution in StackOverflow, and I will share with you how to solve that problem. To solve that problem you can use this code.</p><pre>onView(withId(R.id.<em>rvTodoList</em>))<br>    .perform(<br>        RecyclerViewActions.actionOnItemAtPosition&lt;RecyclerView.ViewHolder&gt;(<br>            0,<br>            swipeLeft()<br>        )<br>    )</pre><p>I really get a lot of new experience in this module, especially make our code to be cleaner, because in this module coaches always give us a suggestion to make our code be better. Thanks a lot to all the coaches for teaching me, cheers 🍻.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9c8be1cdf1c6" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Gojek Bootcamp 006 — Android Module Day 3]]></title>
            <link>https://medium.com/@aditpp/gojek-bootcamp-006-android-module-day-3-f5fc2d7ff191?source=rss-2f91121f543f------2</link>
            <guid isPermaLink="false">https://medium.com/p/f5fc2d7ff191</guid>
            <category><![CDATA[stories]]></category>
            <category><![CDATA[gojek-bootcamp]]></category>
            <category><![CDATA[gojek]]></category>
            <dc:creator><![CDATA[Aditya Putra Pratama]]></dc:creator>
            <pubDate>Tue, 21 Apr 2020 01:13:25 GMT</pubDate>
            <atom:updated>2020-04-21T01:13:25.109Z</atom:updated>
            <content:encoded><![CDATA[<h3>Gojek Bootcamp 006 — Android Module Day 3</h3><p>Ok, now I wanna share with you about my story in Android Module Day 3. Today we learn about <strong>RecyclerView</strong>, <strong>MVP (Model View Presenter) </strong>and <strong>Testing Pyramid &amp; Test Doubles</strong>.</p><h3>RecyclerView</h3><p>After we learn about <strong>ListView</strong>, in the first session, we learn about <strong>RecyclerView</strong>, so what the difference between ListView and RecyclerView? <strong>RecyclerView</strong> is very similar to <strong>UITableView</strong> in iOS, RecyclerView has reusable of a component to fill with other data. RecyclerView can reduce memory usage, so that make your application to be lighter and cheaper for memories.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*YKCCZBdI5cb9sbhb" /></figure><p>To make RecyclerView, at least we have 3 component:</p><ul><li><strong>Data</strong>, it’s the item list</li><li><strong>Adapter</strong> to manage our data to the list</li><li><strong>RecyclerView</strong> component in our Activity, to show the list</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Xfw0YAoWmj7VGuel" /><figcaption>source: <a href="https://google-developer-training.github.io/">https://google-developer-training.github.io/</a></figcaption></figure><h3>MVP (Model View Presenter)</h3><p>Ok, in the second session, we learn about <strong>MVP </strong>or <strong>Model View Presenter</strong>, MVP is one of a design pattern that you can implement in Android Development. View and Presenter can communicate base on contract, and usually, to creating the contract we use interface or protocol. Presenter bridging between Model And View, so the view doesn&#39;t know about the model, view just receive with what presenter has given. So basically MVP separating the business logic from view.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/778/0*AKjKP7W66gBgIvXA.png" /><figcaption>source: <a href="https://www.techyourchance.com/">https://www.techyourchance.com/</a></figcaption></figure><h3>Test Pyramid &amp; Test Doubles</h3><p>And the last session is we learn about Test Pyramid. Test Pyramid has 3 layers, Small tests, Medium tests, and Large tests. Small tests are unit tests that validate the behavior of our app in each class. Medium tests are integration tests that validate the interaction between each module in our app. And the last layer in Test Pyramid is Large tests, large tests are end-to-end tests that validate your application flow from start to finish.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*6Pw5gC3nsoqxgr1F" /></figure><p>After we discussion about Test Pyramid, we discussion about Test Doubles. Test Doubles consists of:</p><ul><li>Fake</li><li>Mock</li><li>Stub</li><li>Dummy</li><li>Spy</li></ul><p>Above is my story about what I learn in Android Module Day 3. I hope that can give you a picture of what we do in Gojek Bootcamp 006, especially in the Android Module 😄. See you in the next blogpost. Cheers~~~ 🍻</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f5fc2d7ff191" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Gojek Bootcamp 006 — First 2 Days Android Module]]></title>
            <link>https://medium.com/@aditpp/gojek-bootcamp-006-first-2-days-android-module-d55ecdb913aa?source=rss-2f91121f543f------2</link>
            <guid isPermaLink="false">https://medium.com/p/d55ecdb913aa</guid>
            <category><![CDATA[bootcamp]]></category>
            <category><![CDATA[stories]]></category>
            <category><![CDATA[gojek-bootcamp]]></category>
            <dc:creator><![CDATA[Aditya Putra Pratama]]></dc:creator>
            <pubDate>Mon, 20 Apr 2020 02:08:47 GMT</pubDate>
            <atom:updated>2020-04-20T02:23:28.074Z</atom:updated>
            <content:encoded><![CDATA[<h3>Gojek Bootcamp 006 — First 2 Days Android Module</h3><p>Hello all, now I wanna share with you what I learn in the first 2 days Android module. Android module as part of the Gojek Engineering Bootcamp. I will separate this article in two-part Day 1 and Day 2.</p><h3>Day 1 — Learn about Kotlin</h3><p>Kotlin is a programming language by the JetBrains team, first announced in 2011. Kotlin officially language for Android Development at Google I/O 2017.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/484/1*gk4lh5t6WztQ_RyVfxVh2g.png" /><figcaption>Image by <a href="http://freeCodeCamp.org">freeCodeCamp.org</a></figcaption></figure><h4>Philosophy Kotlin</h4><p>The first thing we learn in this part is <strong>Statically Typed</strong>. This means each variable in Kotlin should be defined before they are used.</p><pre><strong>var output: String = “Hello”</strong></pre><pre><strong>var output = “World”</strong></pre><p><strong>Concise </strong>and<strong> pragmatic </strong>in Kotlin.</p><pre>// Create a POJO with <em>getters</em>, <em>setters</em>, equals(), hashCode(), toString() and copy() in a single line:</pre><pre><strong>data class Customer(val name: String, val email: String, val company: String)</strong></pre><pre>// Or filter a list using a lambda expression:<br><strong>val positiveNumbers = list.filter { it &gt; 0 }</strong></pre><pre>// Want a <em>singleton</em>? Create an object: <br><strong>object ThisIsASingleton {<br>  val companyName: String = &quot;Bootcamp&quot;<br>}</strong></pre><p>Kotlin has <strong>nullable types </strong>so that Kotlin can avoid <em>NullPointerExceptions. </em>Everything in Kotlin is an object, so Kotlin can adapt the functional concept. Kotlin has Object-Oriented Programming, it makes Kotlin can implement OO principal like <strong>Inheritance, Polymorphism, Abstraction, </strong>and<strong> Encapsulation.</strong></p><h4>Class And Data Class</h4><p>Kotlin has <strong>Class</strong> and<strong> Data Class</strong>, so what’s the difference? Data Class has copy() method, so you can copy the object and change each of its properties.</p><pre>val jack = User(name = &quot;Jack&quot;, age = 1)<br>val olderJack = jack.copy(age = 2)</pre><p>Equality in Data Class doesn’t care with the memory address, Data Class just compare the value. Therefore the data class is often used as a POJO class that holds on the data for you.</p><h4>Accessors</h4><p>Setter and Getter are optional in Kotlin. Kotlin automatically creates setter and getter if you initialize the properties. But Kotlin also allowed us to customize the accessor for a property. Either make the property to be read-only or run some syntax each you assign the value in your properties.</p><pre>var setterVisibility: String = &quot;abc&quot;<br>  private set // read only property</pre><pre>var stringRepresentation: String<br>  get() = this.toString()<br>  set(value) {<br>    setDataFromString(value) // parses the string and assigns value<br>  }</pre><h3>Day 2 — Introduction to Android Development</h3><p>On the second day, coaches introduce to us Android Studio. Basically Android Studio is IDE to developing Android applications. First session coaches presentation about interface and tool in android studio, and the second session they presentation about Android architecture. Android uses <strong>Gradle</strong>, an advanced build toolkit, to automate and manage the build process. Gradle allows you to customize build configuration. In the android project, we have three Gradle files: setting.gradle as the <strong>Gradle setting file</strong> to tells which modules should be included when building the app, and two build.gradle as <strong>Top-level build file </strong>and <strong>Module-level build file. </strong>After that, we learn about Android life-cycle and basic view of Android. In the last session, we do a cycle to try to make a simple Android application. We should try to make Simple Login Apps using <em>TextView, ImageView, Button</em>, and <em>EditText.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/480/1*aa0LAeAdRrkdO_t8E8Jnmw.png" /><figcaption>Simple Login Apps</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d55ecdb913aa" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A story in iOS Module — Gojek Bootcamp 006]]></title>
            <link>https://medium.com/@aditpp/a-story-in-ios-module-gojek-bootcamp-006-202e5c19b301?source=rss-2f91121f543f------2</link>
            <guid isPermaLink="false">https://medium.com/p/202e5c19b301</guid>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[gojek]]></category>
            <category><![CDATA[gojek-bootcamp]]></category>
            <dc:creator><![CDATA[Aditya Putra Pratama]]></dc:creator>
            <pubDate>Tue, 14 Apr 2020 16:26:03 GMT</pubDate>
            <atom:updated>2020-04-15T03:09:10.496Z</atom:updated>
            <content:encoded><![CDATA[<h3>A story in iOS Module — Gojek Bootcamp 006</h3><p>Hello mina~🙃, This time I will share my story about iOS Module in Gojek Bootcamp 006. We start the iOS Module on 6th May 2020, this is the third module in this Bootcamp. We (Bootcampers) don’t have experience in iOS Development. So in the first 3 days, we really struggling and try to adapt to Swift language and Xcode. And after that now I know why there are many memes about Xcode and iOS.</p><h4>A lot of problem in Layouting</h4><p>In the first 3 days, we learn about how to create a view or layouting in Xcode. Actually I have tried to use Native iOS in my previous project, but the first time I use that, I got a lot of bug in Xcode. So I don’t continue my project with Native iOS, I move to use React Native.</p><p>Then in this Bootcamp, we should use Native iOS to developed iOS Application. Do you know what I hate the most? CONSTRAINTS. Ya, one of the ways to construct the view or layout is using UIKit, you can just drag-drop the view to your storyboard or XIB file. But to make your view can automate scale or positioning in different size of the screen, you should add Constraints in your layout.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*5_rKWKHDieEEbiQE" /></figure><p>If you have many views in the interface builder, trust me, you will have difficulty to set up the Constrains. If you add wrong Constraints in the middle of your progress, you will break your view, hahaha… you should check one by one your Constraints or just delete all, LMAO 🤣. So if you first time tries to develop iOS applications, be patient, mweheehe.</p><h4>Debugging Error</h4><p>The second thing I wanna share with you is about debugging error. Actually I don’t know the way to debug in Xcode. My first way that what I think is debugging with print statements, seriously I don’t know the best practice to debug an error in Xcode until our coaches suggest to us to also use breakpoint for debugging. And then, that really helps us to know about the error, and easily track the error or bug.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/556/0*8wytV8qB4stXWsq7" /></figure><h4>Easily to save user’s preferences</h4><p>I really like with this feature in Swift, the feature is <em>UserDefaults class</em>, I think it’s really easy to implement in our code. Basically <em>UserDefaults </em>allows an app to customize its behavior to match a user’s preferences. So if you want your application can save user preferences, you can use this class. Why do I think it’s easy? because of my experience in Android. In android, you should pass the context to your <em>SharePreference class</em>, and in iOS, you don’t need that.</p><h4>The final Project give us more experience</h4><p>In the final project, we are divided into several teams. Each team should create iOS applications like GoFood. Do you know what we feel when the coaches give us this project? Damnn, we should create this project in 4 days after we learn about iOS in 4 days 🥺, that impossible. We got the freedom to implement anything that we want, don’t have anything rules.</p><p>In this project, we learn more then what we get from the first 4 days. We learn about how to create animation for transition in the view, so make our view seen more smooth. Learn about Image Caching which makes our application can show the image more fastest. And the most important is we learn to collaborate in a team.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/857/1*iWLYUAoi_VJIRpLdv2tLag.png" /><figcaption>Final Project by My Team</figcaption></figure><p>Yeah, I really satisfied with this session, we can compete fairly with other teams and give the best version of each of us. #PastiAdaJalan</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/232/1*TVqSealx-ABPzBfe3ejLzw.gif" /><figcaption>Final Project by My Team</figcaption></figure><p>So, that’s what I can share with you, about my story in iOS Module Gojek Bootcamp 006. This module has given me another view about iOS which previously gave me a bad experience. Now, I really like iOS Development, and Maybe I will create another project using Native iOS using Swift.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=202e5c19b301" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Proudest Moment — Start the year with luck]]></title>
            <link>https://medium.com/@aditpp/proudest-moment-start-the-year-with-luck-f8bc83f420e0?source=rss-2f91121f543f------2</link>
            <guid isPermaLink="false">https://medium.com/p/f8bc83f420e0</guid>
            <category><![CDATA[history]]></category>
            <category><![CDATA[sharing-stories]]></category>
            <category><![CDATA[gojek-bootcamp]]></category>
            <dc:creator><![CDATA[Aditya Putra Pratama]]></dc:creator>
            <pubDate>Mon, 16 Mar 2020 00:29:22 GMT</pubDate>
            <atom:updated>2020-03-16T00:29:22.923Z</atom:updated>
            <content:encoded><![CDATA[<h3>Proudest Moment — Start the year with luck</h3><p>Hello all, this time I wanna share with you all about the proudest moment in my life until now. I have had two lucks at the beginning years, first ones, I finished my studies in 3,5 years, and second ones, I got jobs in one of a big company in Indonesia.</p><h3>Finished my studies in 3,5 years</h3><p>I’m a college student at Brawijaya University, located in Malang city, East Java far away from my family. You know the most tiring moment of finishing my undergraduate thesis is very difficult to meet my lecturer. I think most students also feel what I feel.</p><p>That moment starts in mid-2019 (specifically in the 7th semester). I start to write my undergraduate thesis and my final project. Every day I’m waiting for my lecturer in front of the lecturer room, from 10 AM until 4 PM. There is no day without revision ☹️, but yeaaah, hard work will not betray the results.</p><blockquote>The formulas of a success are a hard work and never give up. — Anonim</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Fr7FcZDqIt9AragrgLNOoQ.jpeg" /><figcaption>Yudisium FILKOM UB 2020</figcaption></figure><h3>Join to Gojek Indonesia as Go-Troop</h3><p>Started in November 2019, I start my journey through Campus Hiring Surabaya. From Malang, I with my friend riding a motorcycle to go to Surabaya. On Saturday, we start with the Pair Programming session with Gojek Engineer. Damn, I’m so nervous, It’s the first time I try to pair programming. I try to calm and just do what I can do.</p><p>After the pairing session, I got an announcement to join the next session on Sunday. The next session is Interview Session, yeah the interview session is ask about daily activity and experience in programming. I remember the interviewer ask me to code on the whiteboard. He gives me some problems (if I remember correctly) the problem is about data structure. Alhamdullilah, I can solve the problem correctly.</p><p>After that, I waiting for the announcement for two weeks. Alhamdullilah again, I passed to the final interview. The final interview conducted online by Zoom, and he asks about technical and my experience. After a few weeks, I got a call from Gojek HR. She gives me congrats and said that I passed. Damn, I don’t know what to say. I just say “Oh iya kak, thank you”, wkwkwk LOL 🤣. It’s beyond my expectation because I don’t really confident with my skills.</p><p>And then On 3rd February 2020, I start my journey in Gojek as Go-Troop. I hope I have the opportunity to give more value to Gojek and Indonesia.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*h2xj5xwbTVku1wL_4ib95A.jpeg" /><figcaption>Gojek Bootcamp 006 — with Kevin Aluwi (Co-CEO Gojek)</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f8bc83f420e0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Flutter — for Easier to Develop Application]]></title>
            <link>https://medium.com/@aditpp/flutter-for-easier-to-develop-application-9d467d7aa70f?source=rss-2f91121f543f------2</link>
            <guid isPermaLink="false">https://medium.com/p/9d467d7aa70f</guid>
            <category><![CDATA[gojek-bootcamp]]></category>
            <category><![CDATA[flutter]]></category>
            <category><![CDATA[apps]]></category>
            <dc:creator><![CDATA[Aditya Putra Pratama]]></dc:creator>
            <pubDate>Sun, 08 Mar 2020 23:54:36 GMT</pubDate>
            <atom:updated>2020-03-08T23:54:36.049Z</atom:updated>
            <content:encoded><![CDATA[<h3>Flutter — for Easier to Develop Application</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/953/0*kzlqUBQbVdjlEdVO.png" /><figcaption>Source: <a href="https://github.com/flutter/flutter">https://github.com/flutter/flutter</a></figcaption></figure><blockquote>Flutter is open-source focusing in UI SDK create by Google, crafting beautiful and fast user interface for mobile, web, and desktop with single codebase.</blockquote><p>Google introduces Flutter on Google I/O 17 — Solution for creating an application with beautiful UI also has many variants widget for easy to use. Write code with Dart language, <a href="https://dart.dev/">Dart</a> language is a programming language by Google. If you using Java before, it’s will be easier for you to learn Dart.</p><h3>Features</h3><p>Flutter has a lot of features that make you easier and faster to develop the user interface.</p><h4>Hot Reload</h4><p>Hot reload feature allowing you to easier to see the result after changes your code. Hot reload works by injecting updated source code files into the running <a href="https://dart.dev/platforms">Dart Virtual Machine (VM)</a>, so you can quickly view the effects of your changes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/878/0*-fC-ZXSNHStvh9IM.gif" /><figcaption>Source: <a href="https://flutter.dev/docs/development/tools/hot-reload">https://flutter.dev/docs/development/tools/hot-reload</a></figcaption></figure><h4>Full Support by Material Design</h4><p>If we familiar with a component to called something view, in Flutter, we called that with widgets. Flutter has a lot of component views to choose from and easier to implement. That thing has supported by Material Design. We’re able to create a custom widget from other widgets.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_1rkmUthVOmWxRt2N1gxkA.png" /><figcaption>Source: <a href="https://flutter.dev/docs/development/ui/widgets/material">https://flutter.dev/docs/development/ui/widgets/material</a></figcaption></figure><h4>Editor and IDE Support</h4><p>Flutter support Visual Studio Code and IntelliJ/Android Studio with many plug-ins can make you easier to develop apps. Provide a lot of packages to speed you develop and accessing native code is easy.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/568/0*3N--WCfA40YPMZQz.gif" /><figcaption>Source: <a href="https://flutter.dev/docs/development/tools/android-studio">https://flutter.dev/docs/development/tools/android-studio</a></figcaption></figure><h3>Flutter support by Big Community</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uFQ2XhOI0lxv8OW0vQG6RA.png" /><figcaption>Source: <a href="https://github.com/flutter/flutter">https://github.com/flutter/flutter</a></figcaption></figure><p>Flutter has a big community, not only in Github, on social media like Facebook and Twitter, Flutter has a lot of fans and contributors. The community can help you to solve your problem or issue, so simultaneously Flutter can expand that features.</p><p>Basically, Flutter can work with a shared package created by other developers from the community. So that allows you to create apps without developing everything from scratch.</p><h3>Sample Code</h3><pre><strong>import</strong> &#39;package:flutter/material.dart&#39;;<br> 2 <br> 3 void main() =&gt; runApp(HelloWorldApp());<br> 4 <br> 5 <strong>class</strong> <strong>HelloWorldApp</strong> <strong>extends</strong> StatelessWidget {<br> 6   @override<br> 7   Widget build(BuildContext context) {<br> 8     <strong>return</strong> MaterialApp(<br> 9       title: &#39;Hello World App&#39;,<br>10       home: Scaffold(<br>11         appBar: AppBar(<br>12           title: Text(&#39;App Bar Title here&#39;),<br>13         ),<br>14         body: Center(<br>15           child: Text(&#39;Hello World&#39;),<br>16         ),<br>17       ),<br>18     );<br>19   }<br>20 }</pre><p>Basically, Flutter provides two class for you extends to create class or widget, either StatelessWidget or StatefulWidget. If you need the widget or view provide state, you can use StatefulWidget to handle state in widget or view. If you don’t need that, you can use StatelessWidget. The Widget basically is Object, you can set the states in each Widget to manage view as you want.</p><h3>Hands-on Experience</h3><p>Why not using React Native for cross-platform and single codebase? Basically, it’s my question in 1 year ago. I’m using React Native in my previous project, but after that, I chose Flutter to develop my project. For the first time, we choose to use Flutter because my client gives us a design that similarity to Material Design, so we think, so easier if we using Flutter because Flutter has had support Material Design.</p><p>We discussed to determine which one to choose, and then we don’t choose to use React Native because we think that JavaScript has a lot of magic. So we choose Dart because that more type-safe than JavaScript. We know if we can use TypeScript or Flow to support React Native keep it strong type, but to do that, we must add more dependency in the program. That is the simple reason why we choose Flutter rather than React Native to develop our project.</p><h3>Resources</h3><ul><li><a href="https://github.com/flutter/flutter">GitHub - flutter/flutter: Flutter makes it easy and fast to build beautiful apps for mobile and beyond</a></li><li><a href="https://flutter.dev/">Flutter - Build apps for any screen</a></li><li><a href="https://en.wikipedia.org/wiki/Flutter_(software)">Flutter (software) - Wikipedia</a></li><li><a href="https://medium.com/hackernoon/flutter-5-reasons-why-you-may-love-it-55021fdbf1aa">Flutter — 5 reasons why you may love it</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9d467d7aa70f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Gatebox from Japan: Giving you Waifu]]></title>
            <link>https://medium.com/@aditpp/gatebox-from-japan-giving-you-waifu-fc9c08cd7aab?source=rss-2f91121f543f------2</link>
            <guid isPermaLink="false">https://medium.com/p/fc9c08cd7aab</guid>
            <category><![CDATA[gatebox]]></category>
            <category><![CDATA[introduction]]></category>
            <category><![CDATA[gojek-bootcamp]]></category>
            <dc:creator><![CDATA[Aditya Putra Pratama]]></dc:creator>
            <pubDate>Sun, 01 Mar 2020 16:11:26 GMT</pubDate>
            <atom:updated>2020-03-01T16:11:26.591Z</atom:updated>
            <content:encoded><![CDATA[<h4>Artificial Intelligent Character for Home Assistant</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*0fClz_JhupD-ZUQY.jpg" /><figcaption>Image by <a href="https://www.gatebox.ai/en/">Gatebox</a></figcaption></figure><p>The Gatebox is a home assistant base on artificial intelligence created by Vinclu (one of a tech company in Tokyo, Japan). The character lives in a glass tube sized 8-inch by 11-inch piece of paper and to be able to interact with you, that using voice or your smartphone. The character displayed by hologram technology and could respond to you by voice like Google Assistant by Google and Siri by Apple.</p><h3>How Gatebox Work?</h3><p>To be able to interact with the user, Gatebox has a microphone and a camera to get the user instruction. Considering that tech available in Japan, the instruction just able only with the Japanese language, but the company says to scale that technology with other languages especially to be able with the English language.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*bNOunpiWMcZNwq-V.jpg" /><figcaption>Image by <a href="https://www.gatebox.ai/en/">Gatebox</a></figcaption></figure><h3>Usability</h3><p>The Gatebox to be able to help you to automate your home in various ways. That tech integrates with smart home, so that can be turning your lights and remind you to wake up. Not only simply that, but she can also visualize the weather and give you warning about that. She texts you like a human partner and be able to adapt base on the situation.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*LOHbhg-dT7NRkaDH.png" /><figcaption>Image by <a href="https://www.gatebox.ai/en/">Gatebox</a></figcaption></figure><h3>Resources</h3><ul><li><a href="https://www.gatebox.ai/en/">Toppage - Gatebox</a></li><li><a href="https://www.businessinsider.sg/gatebox-ai-the-japanese-amazon-echo-photos-2016-12?r=US&amp;IR=T">Japan&#39;s $2,700 answer to Amazon&#39;s Echo could make the country&#39;s sex crisis even worse</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fc9c08cd7aab" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[My Superhero is my Role Model]]></title>
            <link>https://medium.com/@aditpp/my-superhero-is-my-role-model-48cd32331192?source=rss-2f91121f543f------2</link>
            <guid isPermaLink="false">https://medium.com/p/48cd32331192</guid>
            <category><![CDATA[role-models]]></category>
            <category><![CDATA[beyourself]]></category>
            <category><![CDATA[gojek-bootcamp]]></category>
            <dc:creator><![CDATA[Aditya Putra Pratama]]></dc:creator>
            <pubDate>Mon, 24 Feb 2020 17:40:26 GMT</pubDate>
            <atom:updated>2020-02-24T17:40:26.641Z</atom:updated>
            <content:encoded><![CDATA[<p>Everyone needs someone to compare himself with a role model. It makes us be better and grow. To get the role model it’s so simple, you can get your role model in your close relatives, like your family or your friend.</p><p>So I also have someone to be my role model. That person is my Dad, the only one and my first superhero in my life. He teaches me about everything especially about career and social. He always talks to me to become the best version of ourselves and don&#39;t forget to get many friends.</p><blockquote>You can be making friends with everyone, but you should remember, just take the positive effect and if you don’t like what they doing, just don’t follow it. You must be yourself!.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/626/0*RP89SJgyhT2-swY4.jpg" /></figure><p>Dad talks with Javanese Philosophy like “Ojo Dumeh” to teaches me to don’t be cocky with something you have, just still be a low profile person. My dad gives me the freedom to choose anything that I do and be anything that I want.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=48cd32331192" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[5W + 1H for Learning Something New]]></title>
            <link>https://medium.com/@aditpp/5w-1h-for-learning-something-new-f29d296559e3?source=rss-2f91121f543f------2</link>
            <guid isPermaLink="false">https://medium.com/p/f29d296559e3</guid>
            <category><![CDATA[5w1h]]></category>
            <category><![CDATA[how-to-learn]]></category>
            <category><![CDATA[gojek-bootcamp]]></category>
            <dc:creator><![CDATA[Aditya Putra Pratama]]></dc:creator>
            <pubDate>Wed, 19 Feb 2020 04:37:25 GMT</pubDate>
            <atom:updated>2020-02-19T04:37:25.815Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yL8Cw0XFoGKHwmDCqQbeuA.png" /><figcaption>Photo by <a href="http://unsplash.com/@glenncarstenspeters"><strong>Glenn Carstens-Peters</strong></a><strong> </strong>on <a href="https://unsplash.com/"><strong>Unsplash</strong></a></figcaption></figure><p>Yoohoo mina-san 😷~~~ I’m back with a new article. This time I will share with you all about how to learn something new base on the 5W + 1H method. Ok first, what is 5W + 1H? Basically, this method consists of asking a systematic set of questions. So why we need this method to learn something? To answer this question, I will tell you point by point. Ok, Let’s get started!!!</p><h4>What? 🤔</h4><p>Yah, the first question is “what”. This question focusing to identify something that you learn. It’s about definition. For example, I want to learn about Object-Oriented Programming, so the “what” question is “What is Object-Oriented Programming?”, and the answer can be a definition of OOP itself.</p><h4>Who? 😕</h4><p>For learning something new, you need to know who is the actor can use that, and then you should know whether you are the real user or not.</p><h4>Why? 😲</h4><p>The point of the “why” question is the reason for what you use it. Knowing the reason why you use it will help you understand better the problem and the solution.</p><h4>When? 🙄</h4><p>“when you should use it?” and “when you shouldn’t use it?”, yeah this is the sample question which may you often hear. The answer to this question relates to the “why” question. If you want to know when you using that, you have to know why you need it in the first place.</p><h4>Where? 😶</h4><p>The function of “where” question is to know from where you can start, either where to start learning, or where you can use it, or where it is the more superior way than others.</p><h4>How? 🙃</h4><p>The last question is “How”, you need this question for getting a lot of information about something that you learn. The information can be “how to use that?”, “How it works?”, etc</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*haxq54TgXNy39AW5thkqdg.png" /></figure><p>So, if you confused to learn something and you don’t know where to start. You can use 5W+1H to get more information and easier to understand. Good luck to you, I hope you can be better to understand about something that you learn🍻.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f29d296559e3" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The rumors about Gojek, is it really Rumors or is it facts? (Part I)]]></title>
            <link>https://medium.com/@aditpp/the-rumors-about-gojek-is-it-really-rumors-or-is-it-facts-part-i-7c789a8c2817?source=rss-2f91121f543f------2</link>
            <guid isPermaLink="false">https://medium.com/p/7c789a8c2817</guid>
            <category><![CDATA[gojek-bootcamp]]></category>
            <category><![CDATA[gojek]]></category>
            <category><![CDATA[go-troops]]></category>
            <dc:creator><![CDATA[Aditya Putra Pratama]]></dc:creator>
            <pubDate>Sun, 09 Feb 2020 15:12:27 GMT</pubDate>
            <atom:updated>2020-02-09T15:12:27.746Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4OD8ZONjJ8OQosGupUB10w.png" /></figure><p>Yoohoo mina-san 🍻~. Perhaps everyone has been heard many rumors about Gojek, both from your friends or Gojek employee (they call as GO-TROOPS). Before I’m officially joining in Gojek, I’ve heard some of the rumors which may be same as you hear. By the way, this article based on my experience after joining Gojek for a week 😁 hehe. Okay, let’s get started!!!</p><h4>GO-TROOPS has the flexibility of working hours</h4><p>Actually the things are not wrong, because in Gojek we don’t have to do tap-in and tap-out in the office, but basically that depends on your team. Yahh, sometimes you can work remotely if you feel that you can fulfill the responsibility for your task and available to communicate via slack/zoom all-day without any difficulties.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*GMbmNiqwE-NSBJnT.jpg" /></figure><h4>You’re encouraged to learn all the time</h4><p>Yaaahhh, it’s right. GO-TROOPS encourages to grow up because the iteration in Gojek is so fast. Gojek always has innovations for the product that are being in development, and then we must upgrading our skills all-time. Gojek support and provide a resource for learning, you can get the resource from the office library.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/0*dNpt5XSGKfzh7jwl.jpg" /></figure><h4>Is academic background matter?</h4><p>Actually it’s not, the fact is that my friends at Engineering Bootcamp come from various academic backgrounds, even my mentor background is economic. Yaahhh, that really cool!!! so the point is Gojek doesn’t see your academic background but your potential.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/0*MfZhvAWA73YPWb7E.jpg" /></figure><p>That’s all clarification about Gojek rumors for this part. If you have heard any rumors, you can leave a comment for me. Perhaps next time, I will write part II for rumors about Gojek and answer your questions. Thank you mina~🤭</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7c789a8c2817" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>