#9 - ACE - Gildan
At the start of this week, I figured out with Tom how to make builds for the Gildan app. For most apps, Firebase Distribution Builds are used, only for this app, they use AppCenter. So a bit of unknown territory, but we got it done. Which was interesting, I've heard of AppCenter before, but I never know how that looks like. I found out it looks a lot like the Firebase Distribution Builds, it's almost just as easy to make builds. After having done these builds, the Gildan project was done and I went back on ACE. ACE has a lot of tickets on maintenance, bugs and features. Tickets like making a card clickable in a certain state, decrease font size when a certain amount of numbers are shown, linking products in the cart back to its own product page (what made this interesting was that this app makes use of WebView and it works so backwards opposed to having everything on the app itself, so it was a bit of figuring out where I could retrieve the URL that I needed of the product, which in the end was already locally stored, and it’s really interesting to see how such project is set up like I didn’t even know it was possible to add a product in the cart of the web view and at the same time add in the cart in the app, this was really interesting.), copy changes, adding CTA button, capitalizing the first letter automatically of certain names when submitting a form and I finished off with two bugs, in the app the user can make their own products. When editing their product and saving it while they didn't change anything, it still showed a message. It shouldn't show a message, it should go back immediately. What I learned from this was how to compare the contents of an object. So you cannot do {a: a} === {a: a}, this will output false. You have to convert it to a string, like this: JSON.stringify(initialObject) === JSON.stringify(object). The other bug was that the with setting a purchase date, the user could edit the date to whenever in the future. So I converted the previous customInput with a date time picker modal. In which you have props which handle maximum date. This was interesting to set up since this was completely new for me, also they use like a weird form library which I had to invest time in to understand the works of it, Formik library, which also made it a bit harder. But in the end, got it in, ready to go on iOS, for some reason it didn't change the date on Android, so I'm gonna revisit that with Tom on Monday. And just like that another week was gone, very interesting again, getting easier as well by the week, since I'm getting more and more comfortable with the code base. I notice that I ask a lot less, which is a good thing. So up to the next week!

NE:

Begin deze week bedacht ik met Tom hoe ik builds kon maken voor de Gildan-app. Voor de meeste apps worden Firebase Distribution Builds gebruikt, alleen voor deze app gebruiken ze AppCenter. Dus een beetje onbekend terrein, maar we hebben het voor elkaar gekregen. Wat interessant was, ik heb eerder van AppCenter gehoord, maar ik wist nooit hoe dat eruit zag. Ik kwam erachter dat het veel lijkt op de Firebase Distribution Builds, het is bijna net zo gemakkelijk om builds te maken. Nadat ik deze builds had gedaan, was het Gildan-project klaar en ging ik terug op ACE. ACE heeft veel tickets voor onderhoud, bugs en features. Tickets zoals het klikbaar maken van een kaart in een bepaalde staat, verkleinen van de lettergrootte wanneer een bepaald aantal getallen wordt getoond, koppelen producten in de winkelwagen terug naar hun eigen productpagina (wat dit interessant maakte was dat deze app gebruik maakt van WebView en het werkt dus achteruit in plaats van alles op de app zelf te hebben, dus het was een beetje uitzoeken waar ik de URL kon ophalen die ik nodig had van het product, dat uiteindelijk al lokaal was opgeslagen, en het is echt interessant om te zien hoe zo'n project is opgezet, ik wist niet eens dat het mogelijk was om een product toe te voegen aan de winkelwagen van de webweergave en tegelijkertijd de winkelwagen toe te voegen in de app, dit was echt interessant.), wijzigingen kopiëren, CTA-knop toevoegen , waarbij ik de eerste letter automatisch van bepaalde namen kapitaliseerde bij het indienen van een formulier. Ik eindigde deze week met twee bugs, in de app kan de gebruiker zijn eigen producten maken. Bij het bewerken van hun product en het opslaan terwijl ze niets veranderden, toonde het nog steeds een bericht. Er mag geen bericht worden weergegeven, het moet onmiddellijk teruggaan. Wat ik hiervan heb geleerd, was hoe ik de inhoud van een object kon vergelijken. Dus je kunt {a: a} === {a: a} niet doen, dit zal false opleveren. Je moet het converteren naar een string, zoals deze: JSON.stringify (initialObject) === JSON.stringify (object). De andere bug was dat de gebruiker met het instellen van een aankoopdatum de datum naar de toekomst kon wijzigen. Dus ik heb de vorige customInput geconverteerd met een date time picker modal. Waarin je props hebt die de maximale datum afhandelen. Dit was interessant om op te zetten omdat dit voor mij volkomen nieuw was, ze gebruiken ook een rare formulier library waar ik tijd in moest investeren om uit te zoeken hoe dit werkt, de Formik-bibliotheek, die het ook een beetje moeilijker maakte. Maar uiteindelijk kreeg ik het werkend, op iOS althans, om de een of andere reden veranderde het de datum op Android niet, dus ik ga dat maandag met Tom opnieuw bekijken. En net zoals dat was er weer een week voorbij, weer heel interessant, en het werd met de week ook gemakkelijker, omdat ik me steeds meer op mijn gemak voel met de codebasis. Ik merk dat ik veel minder vraag, wat een goede zaak is. Dus tot de volgende week!

#8 - Gildan
Gildan is a new project for me in which I've been introduced to on Monday. There were like 7 tickets for me to work on, which I worked on this whole week and got them all done by the end of it! The first two tickets I worked on were quite simple, I had to add the brand of the product below the product details based on what I get back from the back end. This needed to happen on two pages, which were two separate tickets. The third ticket was pagination, this was pagination. Apparently this should be done on the back end, instead of the front end, which is how I did it. Which makes sense to do it on back end, because from there you can give small payloads to the front end, instead of the whole list which potentially could give a performance boost. But I spent a day on this, though it may have been a bit useless, it definitely a learning curve. Like I learned a bit more about scopes, I had a callback in a callback and the second callback grabbed the wrong value because it was out of the scope. That is good to know for the next time. Another ticket was that I needed to show the product sizes based on what I would get from the back end. Which was rather simple as well. Another ticket was making a legend, which included mostly styling, some abstraction of making the Legend its own component. Then there were two more tickets, one was that the carousel on the home page only showed New Adult styles, while it should display all new styles. This was rather easy since the code was already there, just had to change some names and access points to the values. The last ticket was about showing the right icons based on certain conditions. This was quite a bit more complex since the code had a lot of nested indexes and conditions. The naming wasn't perfect and it wasn't abstracted that well. So spend the last day figuring out when to show the correct icons, testing that it actually shows the correct icon under these special circumstances and just abstracting the code a bit more. That was another week successfully completed.

NE:

Gildan is een nieuw project voor mij waarin ik maandag ben voorgesteld. Er waren ongeveer 7 kaartjes waar ik aan kon werken, waar ik de hele week aan heb gewerkt en ze allemaal aan het einde hebben gedaan! De eerste twee tickets waar ik aan werkte waren vrij eenvoudig, ik moest het merk van het product onder de productdetails toevoegen op basis van wat ik van de back-end terugkrijg. Dit moest op twee pagina's gebeuren, dat waren twee afzonderlijke tickets. Het derde ticket was paginering, dit was paginering. Blijkbaar zou dit aan de achterkant moeten gebeuren, in plaats van aan de voorkant, en zo heb ik het gedaan. Wat logisch is om het op de back-end te doen, want van daaruit kun je kleine payloads aan de front-end geven, in plaats van de hele lijst die mogelijk een prestatieverbetering zou kunnen geven. Maar ik heb hier een dag aan besteed, hoewel het misschien een beetje nutteloos was, het is zeker een leercurve. Zoals ik iets meer over scopes heb geleerd, had ik een callback in een callback en de tweede callback pakte de verkeerde waarde omdat deze buiten het bereik viel. Dat is fijn om te weten voor de volgende keer. Een ander ticket was dat ik de productmaten moest laten zien op basis van wat ik van de achterkant zou krijgen. Dat was ook vrij eenvoudig. Een ander ticket was het maken van een legende, die voornamelijk styling omvatte, en een beetje abstractie om van de Legend zijn eigen component te maken. Vervolgens waren er nog twee tickets, één was dat de carrousel op de startpagina alleen nieuwe volwassen stijlen liet zien, terwijl het alle nieuwe stijlen zou moeten tonen. Dit was vrij eenvoudig omdat de code er al was, je hoefde alleen wat namen en toegangspunten naar de waarden te veranderen. Het laatste ticket ging over het tonen van de juiste pictogrammen op basis van bepaalde voorwaarden. Dit was een stuk ingewikkelder omdat de code veel geneste indexen en voorwaarden bevatte. De naamgeving was niet perfect en het was niet zo goed geabstraheerd. Besteed dus de laatste dag aan het uitzoeken wanneer de juiste pictogrammen moeten worden weergegeven, test of het onder deze speciale omstandigheden het juiste pictogram weergeeft en abstraheer gewoon de code een beetje meer. Dat was weer een succesvolle week.

#7 - NY - ACE.
This week was mainly about getting some maintenance tickets done for Ace. There was also one ticket open for NY about the date in checkout. That when you select the time from daytime to midnight, the date should automatically change to the next day. And when going back to daytime, the date should go one day back automatically. I've talked about this in week 5, only the ticket was still open because there were still some bugs. What I achieved in that week was that the date went automatically to the next day, only when you would change the time back to the daytime, the date wouldn't go back on the checkout, but on the modal that you open it did go back. Now, this was a tough issue to fix since as I said before, these are very messy components. Now, in the end, I fixed it halfway and the other half with Tom. I got it to go back to the previous day on both modal and checkout. Only when I kept on changing the time from midnight to daytime, the date on the modal and the checkout would stop being synchronous. I did this by saving the prev props of the date, that when it goes back to daytime from midnight, the prev props date which I would store separately could show. But there was another issue when you'd leave the time at midnight and then change the date, the time would stay at midnight and the day would move up in the modal, but on checkout, it would stay on the same day. And I knew the issue, I just didn't know anymore, I was getting confused by the spaghetti code. So I asked Tom to help me and he started abstracting code. So that it would be more structured, this way you would a better overview of what's actually happening. So after having done that, it got clearer, that's for sure. And then we added a setState to the date component, to set the midnight to false when changing the date from a midnight time, to then update the date which would cause into a reset of time to daytime so all would show synchronously. It got a bit complex, but in the end, it got a lot more clearer to me and it was a nice learning curve to how messy components can get and how componentDidUpdate actually works. Besides this interesting ticket, I worked on some tickets for Ace. I had to optimize the progress bar of the video because the offset was just off. Also, the swipe gesture didn't work on Android for a while, because the previous developer who added the gesture handler didn't actually update the java code to have it work on Android ... So we wasted a couple of hours on that mishap. Also, I got to add the swipeable row component to remove an item on swipe. When deleting a function is called which deletes the item from the reducer state, locally. So I learned to work a bit with the data structure of Redux, which was very interesting, cause if I compare it with my project, this is really nice and elegantly structured. Besides this ticket, there were some smaller tickets, like making some icons clickable, moving up the barcode on low res phones only, have the video stop playing when navigating to other pages. That was another week over. I learned a lot once again, got a lot done as well. So up to the next week!

#6 - ACE - NY.
This week was a lot about animations, getting to know the library Reanimated more. Which for me, it wasn't a great success, but just because I needed it to work with the library react-native-video. The issue was that the onProgress props from the component, couldn't for some reason be saved in our Value node of Reanimated. I understand the principle and how it works, I just haven't been able to make it because of issues with the lib. So I made it in React-Native Animated, which was a success. What needed to be realized was a custom progression bar in which you can swipe to a different position in the video. Again I learned a lot, how animations work and most of all the events, that you have nativeEvents in which user swipes positions are being stored. Really cool. Then Thursday, we got to hear that because of the Corona outbreak, the whole Media Monks building is being locked down, so we all have to work from home until further notice. So Thursday we got me a MacBook and phone and prepared these for me so I could work from home. Which I did Friday. We started with a digital standup in which we discussed what we were gonna do for the day and this went quite alright. I got some issues starting up the app, but after I asked Tom, he helped me out. Also, the quick responses of Robert, like I can't say it enough, every time I'm stuck or don't understand something, they are willing to help me and explain to me in depth how things work. Awesome people. What I found out though, is that I preferably work at the building though, just in person. I feel like it's easier to ask then, maybe because I know I will get an answer immediately or that I can see whether they are busy or not, but either way, it went alright I would say. I got a lot of my work done and I did my thing, asked at times where I would get stuck and then the end of the day was there. Very interesting week once again. Especially now I really come to understand the whole structure of the app and a lot of the things that I learn I implement in an app that I make for someone at the church. So most of the things that I learn I practice at home as well most of the time and I really enjoy it. Up to the next work week!

NE


Deze week stond veel in het teken van animaties, kennismaken met de bibliotheek Reanimated. Wat voor mij geen groot succes was, omdat ik het moest laten werken met de bibliotheek react-native-video. Het probleem was dat de onProgress props van de component om de een of andere reden niet kond worden opgeslagen in ons Value-node van Reanimated. Ik begrijp het principe en hoe het werkt, ik heb het gewoon niet kunnen halen vanwege problemen met de lib. Dus ik maakte het in React-Native Animated, wat wel een succes was. Wat gerealiseerd moest worden, was een aangepaste voortgangsbalk waarin je naar een andere positie in de video kunt vegen. Opnieuw heb ik veel geleerd, hoe animaties werken en vooral events, dat je nativeEvents hebt waarin posities van gebruikers swipes worden opgeslagen. Echt heel interessant. Donderdag kregen we te horen dat vanwege de Corona-uitbraak het hele Media Monks-gebouw zou worden afgesloten, dus we moeten allemaal tot nader order vanuit huis werken. Dus donderdag hebben we een MacBook en telefoon voor me geregeld en deze voor me voorbereid, zodat ik thuis kon werken. Vrijdag zijn we begonnen met een digitale stand-up waarin we bespraken wat we die dag gingen doen en dit ging goed. Ik kreeg wat problemen bij het opstarten van de app, maar nadat ik het aan Tom had gevraagd, hielp hij me. Ook de snelle reacties van Robert, ik kan het niet vaak genoeg zeggen, elke keer dat ik vastzit of iets niet begrijp, zijn ze bereid om me te helpen en me diepgaand uit te leggen hoe de dingen werken. Fantastische mensen. Wat ik echter ontdekte, is dat ik bij voorkeur in het gebouw werk, het is wat persoonlijker. Ik heb het gevoel dat het dan gemakkelijker te vragen is, misschien omdat ik weet dat ik onmiddellijk een antwoord zal krijgen of dat Ik kan zien of ze het druk hebben of niet, maar overal ging het goed vandaag. Ik heb veel van mijn werk gedaan en ik deed mijn ding, vroeg soms wat dingen als ik vast kwam te zitten en toen was het einde van de dag er alweer. Nogmaals een zeer interessante week. Vooral nu ik de hele structuur van de app echt begin te begrijpen en veel van de dingen die ik leer, implementeer ik in een app die ik voor iemand in de kerk maak. Dus de meeste dingen die ik leer, oefen ik meestal ook thuis en ik geniet er echt van. Op naar de volgende werkweek!

#5 - GH - NY.
For Google Home I had to make this carousel in this new library Reanimated in which we all have no experience. The reason we want to use this library is because it is handled natively and not on the JS thread, which is a major performance boost, especially on large animations, which this app is full of. Only since I was struggling with it and they too, we decided to postpone this and make this in the React-Native Animated for now, and then later on convert into Reanimated. Though, this was the initial idea, we cheated it a bit by using a Scrollview instead of a custom Animated component, since this was just taking too much time at the moment to figure out. And tracking on which photo the user is, is done with Reanimated, so still a bit of Reanimated was used after all for now. After this, I got a ticket back from New York Pizza on which I needed feedback before I could go on, it was about the day showing the previous day, instead of the next day on the time transition of evening to midnight. This was hacky to fix since the component which handles the time and date is one component which is used with it's own state. So to let the component know when it is the date or time and also have a check in place of when it's midnight to do things separately for time and date, ughh it was a bit of mess, as they acknowledged as well that there should be two components, for each one. Anyhow, I got it fixed with some spaghetti code, which was fine because the release would come out soon, so there was no time to refactor it to some nice well structured code. And then it was already weekend, on the Friday I wasn't there, because I had to go to a matching day of the HBO education in Leiden. And like that another week is wrapped up.

NE: Voor Google Home moest ik deze carrousel maken in deze nieuwe bibliotheek Reanimated waarin we allemaal geen ervaring hebben. De reden dat we deze bibliotheek willen gebruiken, is omdat deze native wordt behandeld en niet op de JS-thread, wat een belangrijke prestatieverbetering is, vooral bij grote animaties, waar deze app vol mee is. Alleen omdat ik ermee worstelde en ook zij, hebben we besloten dit uit te stellen en dit voorlopig in de React-Native Animated te maken en later in Reanimated te converteren. Hoewel dit het eerste idee was, hebben we het een beetje gecheat door een Scrollview te gebruiken in plaats van een aangepaste geanimeerde component, omdat dit op dit moment gewoon te veel tijd kostte om erachter te komen. En het bijhouden van bij welke foto de gebruiker is, wordt gedaan met Reanimated, dus vooralsnog word er een beetje Reanimated gebruikt. Hierna kreeg ik een ticket terug van New York Pizza, waarop ik feedback nodig had voordat ik ermee verder kon gaan, het ging over dat de dag met de vorige dag werd laten zien in plaats van de volgende dag wanneer de overgang van de avond naar middernacht wordt gemaakt om te leveren. Dit was moeilijk te repareren, omdat het component dat de tijd en datum verwerkt wordt, een component is dat wordt gebruikt met zijn eigen state. Dus om het onderdeel te laten weten wanneer het de datum of tijd is en ook een check te hebben van wanneer het middernacht is om dingen apart te doen voor tijd en datum, het was een beetje een puinhoop, wat ze ook erkenden dat er twee componenten voor elk moesten zijn. Hoe dan ook, ik heb het opgelost met wat spaghetti-code, wat prima was omdat de release snel uit zou komen, dus er was geen tijd om het te veranderen in een mooie, goed gestructureerde code. En toen was het al weekend, op de vrijdag was ik er niet, omdat ik naar een 'matchmaking' dag van het HBO-onderwijs in Leiden moest gaan. En zo was er weer een week voorbij.

#4 - Wrapping up NYP, start GH.
New York Pizza would get its new release today. So this week was all about getting it bullet proof for the release, fixing some bugs which after some research you find out it is a back-end problem, which is out of our hands. This went on up to Wednesday, when all the tickets were as good as finished and the app thoroughly tested, I got my first assignment for the new project of Google Home. The assignment was basically making a page completely like the design. And what makes this app really cool are the animations, the animations are over the moon! And then the week was over, learned a lot about best practices and how the code works through some complex components and the basic structure itself. NE: New York Pizza zou vandaag zijn nieuwe release krijgen. Dus deze week stond helemaal in het teken van kogelvrij maken voor de release, het repareren van enkele bugs waarvan je na enig onderzoek ontdekt dat het een back-end probleem is, waar wij geen beheer in hebben. Dit ging door tot woensdag, toen alle tickets zo goed als klaar waren en de app grondig getest was, kreeg ik mijn eerste opdracht voor het nieuwe project van Google Home. De opdracht was eigenlijk om een ​​pagina helemaal naar het ontwerp te maken. En wat deze app echt cool maakt, zijn de animaties, de animaties zijn in de wolken! En toen was de week alweer voorbij, ik heb weer eens veel geleerd over onder andere best practices en hoe de code werkt bij enkele complexe componenten en de basisstructuur zelf.

#3 - Shimmer and tickets, NYP.
This is third week and this has been very interesting as well. I finished the shimmer animation on the first two days. I had it first just implemented separately in one component, when I got the animation and the gradient right, I made it dynamic. I put the shimmer in it's own component and like that I could place it everywhere where it needs to be initiated. Though I had a bit of trouble at startup of the app with this animation, because it didn't want to start smoothly. And I asked, but the guys didn't know it either so eventually my colleague asked, do you use the useNativeDriver. My first thought was, yes, of course. That's the most important thing of an animation I recently read. But he said, well, let's check to be sure. And well well, I forgot to implement it, I assumed I had done, but I had not. Couple of hours well spent haha. But the animation works real smooth now, fixed some comments on this code in the following days and comments on other tickets as well. The rest of the week I mostly fixed small issues, like text changes and small bug fixes. The animation was the biggest thing and it's really cool that I actually made that from scratch. I believe the next release of NYP will come out next week or so and I have a lot of small tickets to get through, which I don't mind, because I get all the more familiar on the whereabouts of things in the app. Really interesting week, I learn a lot by the comments on my code and I can't wait what big things are ahead of me. NE: Dit is de derde week en dit was ook erg interessant. Ik was klaar met de shimmer-animatie binnen de eerste twee dagen. Ik had het eerst in in één component geïmplementeerd afzonderlijk, toen ik de animatie en het verloop goed kreeg, maakte ik het dynamisch. Ik stopte de animatie in zijn eigen component en zo kon ik hem overal plaatsen waar hij moest worden geïnitieerd. Ik had wel een beetje problemen had bij het opstarten van de app met deze animatie, omdat deze niet soepel wilde beginnen. En ik vroeg hoe ik het moest oplossen, maar de jongens wisten het ook niet, dus uiteindelijk vroeg mijn collega, gebruik je de useNativeDriver. Mijn eerste gedachte was, ja, natuurlijk. Dat is het belangrijkste van een animatie had ik onlangs gelezen. Maar hij zei, wel, laten we het controleren voor de zekerheid. En natuurlijk, ik vergat het te implementeren, ik nam aan dat ik het had gedaan, maar dat had ik niet gedaan. Een paar uur goed besteed haha. Maar de animatie werkt nu erg soepel, corrigeerde enkele opmerkingen over deze code in de volgende dagen en opmerkingen over andere tickets. De rest van de week heb ik vooral kleine problemen opgelost, zoals tekstwijzigingen en kleine bugfixes. De animatie was het grootste en het is echt gaaf dat ik dat helemaal vanaf het begin heb gemaakt. Ik geloof dat de volgende release van NYP volgende week uitkomt of zo en ik heb veel kleine tickets om door te komen, wat ik niet erg vind, omdat ik des te bekender wordt over de plekken van dingen in de app. Echt een interessante week weer, ik leer veel van de reacties op mijn code en ik kan niet wachten welke grote dingen voor me liggen.

#2 - Tickets and animations, NYP.
In this week I worked on quite some tickets. Tickets are basically all the features and bugs that need to be handled. One ticket was that the number of products didn't match the items in the cart on checkout. Which is critical, but eventually rather simply fixed. How it initially was counted was through .length on the array with all the products. But each element/item has an amount, which wasn't being counted with the .length and therefore you get a wrong number. I fixed it by using the reduce helper, which iterates over the array and returns an integer, in this .reduce I counted the amount on top of the initial value which is 0 by default. Another ticket was to have the ability to choose your discount in the cart. Whether you want discount with Coupon or VIPCard number. So when you click on a button, it opens up a modal which shows two menu items. One which shows the coupon form and the other which shows the VIPCard number form. And if you've an active coupon, the form should replace itself with the list of active coupons and below that have a button for an option to activate more coupons. Same goes for the VIPCard number, only there you won't have the ability to choose another VIPCard number. This was an interesting ticket in which I learned a lot, like nested ternaries, redux selectors a bit, hooks, functional components, good use of lifecycle for performance and just the code structure overall. This was as good as finished at the end of the day of Thursday, on which they assigned me an animation assignment for Friday, for me to make a shimmer animation for the skeleton. And animations is totally new for me, so that should be fun. This is also which I spent all my Friday afternoon on. On the morning of Friday my colleague went through my code of the coupon and VIPCard code and told me where code could be more optimized, which is was interesting and good to know. So I changed this and then the week was over. Again a very productive and interesting week. NE: In deze week heb ik aan nogal wat tickets gewerkt. Tickets zijn eigenlijk alle functies en bugs die moeten worden afgehandeld. Eén ticket was dat het aantal producten niet overeenkwamen met de items in de winkelwagen bij het afrekenen. Dat is cruciaal, maar uiteindelijk tamelijk eenvoudig opgelost. Hoe het aanvankelijk werd geteld was door .lengte op de array met alle producten. Maar elk element / item heeft een hoeveelheid, die niet werd geteld met de .lengte en daarom krijg je een verkeerd nummer. Ik repareerde het met behulp van de reductie-helper, die over de array itereert en een geheel getal retourneert, in deze .reduce telde ik het bedrag bovenop de initiële waarde die standaard 0 is. Een ander ticket was om je korting in de winkelwagen te kunnen kiezen. Of je nu korting met coupon of VIPCard-nummer wilt. Dus wanneer je op een knop klikt, wordt een modaal geopend met twee menu-items. Een die het couponformulier toont en de andere die het VIPCard-nummer toont. En als je een actieve kortingsbon hebt, moet het formulier zichzelf vervangen met de lijst met actieve kortingsbonnen en daaronder een knop voor een optie om meer kortingsbonnen te activeren. Hetzelfde geldt voor het VIPCard-nummer, alleen daar kun je geen ander VIPCard-nummer kiezen. Dit was een interessant ticket waarin ik veel heb geleerd, zoals nested ternaries, een beetje redux-selectors, hooks, functionele componenten, goed gebruik van de levenscyclus voor performance en de codestructuur in het algemeen. Dit was zo goed als klaar aan het einde van de dag van donderdag, waarop ze me een animatie opdracht gaven voor vrijdag, voor mij om een shimmer animatie voor het skeleton te maken. En animaties zijn helemaal nieuw voor mij, dus dat zou leuk moeten zijn. Dit is ook waar ik mijn hele vrijdagmiddag aan heb besteed. Op de ochtend van vrijdag nam mijn collega mijn code van de coupon en VIPCard-code door en vertelde me waar de code beter kon worden geoptimaliseerd, wat interessant en goed was om te weten. Dus ik veranderde dit en toen was de week voorbij. Wederom een ​​zeer productieve en interessante week.

#1 - Start up, NYP.
On monday I got to meet all my colleagues and helped my teamleader set me up on the iMac. My team exist out of 4 people, me included. One of them works a lot on another project so I don't see him a lot. One is an English man and the other is Irish. In the room where I work there are two other teams besides our team of React-Native, like Android and IOS. Half of them are Dutch, 3 Russians, one is from Greece and the others I don't know. The whole Monday was about installing the software and logging into the right websites in order for me to get to work. On Tuesday I got the time to spit into the code of the project I worked on this week, the app of New York Pizza. I got some minor assignments on Tuesday and Wednesday in order for me to get to know the structure of the project. Assignments like changing some text and some styling. On Thursday and Friday I got two bigger assignments. One of these two is the option to delete pizza slices on the double tasty and four tasty pages. The other one is showing more details in the cart where the order items display. I ask a lot, it's way harder than I initially thought it would be. Morely because of the insanely complex structure of the project and code, atleast in comparison to what I'm used to it's insanely complex. But I've learned a lot already, also like working on a iMac for the first time. So it has been a very productive and interesting first week. NE: Maandag ontmoette ik al mijn collega's en hielp mijn teamleider me met het opzetten van de iMac. Mijn team bestaat uit 4 personen, inclusief mijzelf. Een van hen werkt veel aan een ander project, dus ik zie hem niet veel. De ene is een Engelse man en de andere is Iers. In de kamer waar ik werk zijn er naast ons team van React-Native twee andere teams, zoals Android en IOS. De helft is Nederlands, 3 Russen, de ene komt uit Griekenland en de andere weet ik niet. De hele maandag ging over het installeren van de software en het inloggen op de juiste websites zodat ik aan het werk kon. Op dinsdag kreeg ik de tijd om in de code van het project te doorkijken waaraan ik deze week werkte, de app van New York Pizza. Ik kreeg een aantal kleine opdrachten op dinsdag en woensdag om de structuur van het project te leren kennen. Opdrachten zoals het wijzigen van wat tekst en wat styling. Op donderdag en vrijdag kreeg ik twee grotere opdrachten. Een van deze twee is de optie om pizza punten op de double tasty en four tasty pagina's te verwijderen. De andere toont meer details in de winkelwagen waar de orderitems worden weergegeven. Ik vraag veel, het is veel moeilijker dan ik in eerste instantie dacht dat het zou zijn. Merendeels wegens de waanzinnig complexe structuur van het project en de code, ten minste in vergelijking met wat ik gewend ben, is het waanzinnig complex. Maar ik heb al veel geleerd, ook graag voor het eerst aan een iMac werken. Het was dus een zeer productieve en interessante eerste week.

Blog about my internship
This will be the blog about my internship, where I will post my progress within this company. This is a simple blog just for the purpose of the designated assignment.