Starter Kits/COBE

O tvrtki

Bok!

Mi smo COBE, kreativna agencija sa sjedištem u Münchenu i uredom u Osijeku. Ukratko, bavimo se web i mobilnim developmentom, UI/UX dizajnom, Project managementom i QA-om. Zajedno s timom iz Njemačke, a i zasebno, volimo stvarati zanimljive aplikacije te kreirati uspješna digitalna iskustva. Sve projekte radimo s velikim entuzijazmom i profesionalnošću, što dokazuje više od milijun korisnika naših aplikacija diljem Europe. 

Zahvaljujući stalnom rastu i širenju portfelja klijenata, uvijek smo u potrazi za pojačanjem, a u našem timu često se nađu studenti i početnici koji nas osvoje entuzijazmom i željom za učenjem i razvijanjem. Ako si i ti rookie u svijetu developmenta i dizajna i tražiš smjer u kojem se želiš razvijati, pogledaj naše starter kitove i pronađi se. Pripremili smo ti kratke savjete za upoznavanje Android i iOS sustava, UI/UX dizajna, Frontend i Backend developmenta te Quality Assurance-a. Kad proučiš sve detalje, provjeri i tražimo li nove zaposlenike!
Ako se pronađeš u nekom od oglasa, javi nam se na mail ivan.jurlina@cobeisfresh.com!

Otvorene pozicije objavljujemo na našoj web – stranici, a sve druge novosti možeš pratiti na našem blogu, ili putem profila na Facebooku, Twitteru i Instagramu.

Android

Što je potrebno za postati Android developer?

  • Računalo s bilo kojim operativnim sustavom
  • Volja za učenjem

Koja znanja su potrebna za početak učenja?

  • Osnove objektno orijentiranog programiranja
  • Osnove rada s Java programskim jezikom
  • Osnove rada s Kotlin programskim jezikom
  • Poznavanje XML-a

Koji alati su potrebni za razvoj Android aplikacija?

Android studio sadrži sve što je potrebno za početak rada i učenja Android developmenta. 

Ako nemate Android uređaj za testiranje vašeg projekta, može vam pomoći Virtual Device Manager sa svojim emulatorom Android uređaja (bilo koje verzije i specifikacija).

Kako bi vaši alati bili up-to-date, Studio koristi ugrađeni alat – SDK Manager. 

Osim ovih, postoji pregršt alata i dodataka (plug-ina) za Android studio koji će vam jako olakšati rad.

Odakle krenuti?

Prvo mjesto koje bi svaki developer trebao posjetiti je Googleova Android Developer dokumentacija: https://developer.android.com/docs.

Ovdje možete pronaći vodiče koji objašnjavaju gotovo sve, od toga kako postaviti prvu Android aplikaciju na noge, preko naprednijih tema, kao što su spremanje podataka u bazu pa sve do oslobađanja pristupa aplikaciji osjetljivijim dijelovima Android sustava.

Na istom mjestu nalaze se i smjernice vezane za dizajn Android mobilnih aplikacija, korištenje Googleovih alata za objavu aplikacija na Play Store i savjeta za uspjeh same aplikacije.

Nakon što prođete svu dokumentaciju, i napredujete na ozbiljnija pitanja, postoji još nekoliko mjesta na kojima možete potražiti pomoć:

  • Google Developers: centralno mjesto za sve Googleove alate (Maps, Analytics, Youtube…) s tutorialima koji objašnjavanju kako ih implementirati u projekt
  • Vogella: Android, Java, Web development i design patterni samo su neke od tema koje možete pronaći na ovom korisnom blogu
  • Android Arsenal: nakon sto prođete sve gore navedeno, spremni ste za korištenje biblioteka (library). Android Arsenal sadrži katalog većine biblioteka koji će vam ikada trebati, od onih koji se odnose na UI do networkinga i baza podataka

Kroz ovaj kratki pregled vidljivo je kako zaista postoji veliki izbor literature, knjiga, tutoriala, savjeta, vijesti i iskustava koje vam mogu pomoći. Ipak, najvažnije je imati želju za učenjem i razvijanjem. A uz sve navedene alate i vodiče, sigurni smo da ćete jako brzo imati svoju prvu aplikaciju.

Dodatne poveznice:

 

 

SWIFT/iOS

Ključne stvari koje svaki Swift developer mora znati:

  • Poznavati principe objektno orijentiranog programiranja: objekti, klase, strukture, inicijalizatori, enkapsulacija, nasljeđivanje, itd.
  • Poznavati osnovne principe funkcionalnog programiranja: closure (lambda funkcije), funkcije višeg reda (map, filter, reduce)
  • Razumjeti razliku tipova koji se prenose po vrijednosti i referenci (value vs. reference type), odnosno razliku klase i strukture
  • Znati što je MVC (Model-View-Controller) te gdje pripadaju pojedinačni dijelovi koda
  • Koja je svrha i kako koristiti Git

Ključne stvari koje svaki iOS developer treba znati:

  • Xcode: prečaci, izbornici, gdje se što nalazi, debugging alati
  • UIKit: Storyboard, Auto-Layout, Segue, view hijerarhija
  • Lifecycle metode ViewControllera, AppDelegatea
  • Kako radi UINavigationController i iOS navigacija
  • SwiftUI
  • Kako dohvatiti podatke s interneta
  • Što je REST, što je JSON, i kako parsirati JSON u Swift strukturu ili objekt
  • Dodavanje frameworka u aplikaciju (CocoaPods, Carthage ili Swift Package Manager)
  • Rad sa UserDefaults, spremanje i dohvaćanje podataka iz Core Data

Iako na prvu zvuči zastrašujuće, ne morate se brinuti jer postoji puno resursa koji će vas uputiti i uvesti u svijet iOS-a. Za početak, možete krenuti s odličnim predavanjima o razvoju iOS aplikacija u Swiftu Sveučilišta Stanford, a koja su dostupna besplatno preko iTunes-a. Prof. Hegarty provest će vas kroz gotovo sve aspekte kreiranja iOS aplikacija. A ako kodirate dok gledate, nakon što pogledate sve videe, bit ćete spremni napraviti bilo koju iOS aplikaciju koju možete naći na App Storeu.

Kako biste naučili iOS, svakako morate znati Swift. A najbolji materijal za učenje najbolje je potražiti izravno kod kreatora Swifta – Applea. Apple ima sjajan Swift eBook koji je kompletan pregled tog jezika, kojem se i naši developeri ponekad vraćaju kada negdje zapnu.

Dok je Appleov eBook više teoretske naravi (koju trebate znati!), ponekad vam treba i malo praktičnih primjera da bi vam znanje “sjelo”. Najbolji resurs praktičnih primjera za početnike je Hacking With Swift, web stranica koja je prepuna primjera i zadataka za Swift.

 

 

UX/UI Dizajner

Tko je UX/UI dizajner i što radi? 

UX/UI dizajner se, prije svega, bavi dizajnom korisničkih sučelja kako bi ono bilo razumljivo, jednostavno za korištenje, ali i oku ugodno. Iako su UX i UI dvije različite discipline, u COBE-u se dizajneri odlično snalaze u obje. 

UX se odnosi na flow digitalnih proizvoda, strukturu informacija, wireframeove screenova, storyboardove, brainstorming sesije i brojne druge metode kojima se dolazi do pravih feature-a za određeni proizvod. Ono što UX odabere i zaključi koristi se za UI, koji UX nacrte i naputke spajaju s vizualnim dizajnom i interakcijom.
I UX i UI moraju uvijek voditi računa o krajnjim korisnicima i mogućnostima developmenta dizajniranih ekrana. UX/UI dizajneri uglavnom rade za web, iOS i Android platforme, ali postoji mogućnost dizajniranja sučelja za druge pametne uređaje kao što su sučelja za automobile ili čak aparate za kavu. 

COBE Designer Checklist:

  • Voli istraživati, rješavati probleme, analitički razmišljati, učiti nove stvari i biti u korak s digitalnim trendovima 
  • Poznaje načela dizajna i tipografije 
  • Poznaje dobre i loše UX prakse te dizajn odluke donosi na temelju potreba korisnika
  • Rastura neki od alata za UI dizajn poput Sketcha, Figme ili AdobeXD-a 
  • Material Design i Human Interface smjernice ima u malom prstu
  • Ima iskustva u dizajnu korisničkih sučelja za različite uređaje i platforme (responsive web, Android, iOS…)
  • Snalazi se u svim fazama projekta od skiciranja i koncepta (wireframeova) do developmenta dizajniranih ekrana i izrade prototipa
  • Lako se izražava na engleskom i hrvatskom jeziku i uvjerljivo prenosi svoje ideje timu, ali i klijentima
  • Posjeduje dizajn portfolio s prethodnim radovima (stvarni ili izmišljeni projekti) koji pokazuje razinu iskustva i znanja

Za dodatne bodove?

  • Poznaje osnove frontend ili mobile developmenta
  • Upoznat s Atomic Design pristupom i Sketch Libraryjima
  • Super profil na Dribbbleu i/ili Behanceu 
  • Iskustvo s ilustracijom i/ili animacijom
  • Poznavanje alata kao što su: Abstract, Zeplin, inVision i Flinto 
  • Iskustvo rada u Scrum timu

Nemam iskustva. Odakle krenuti?

Bez brige. Pripremili smo ti listu linkova koji će ti dati detaljniji uvid u spomenuta područja i pomoći da započneš svoju UX/UI karijeru ili svoje postojeće vještine jednostavno podigneš na višu razinu.

Design Principles: https://www.youtube.com/watch?v=WONZVnlam6U&list=PLYfCBK8IplO4E2sXtdKMVpKJZRBEoMvpn

Sketch za početnike: Youtube Tutorial

Figma za početnike: https://www.youtube.com/channel/UCQsVmhSa4X-G3lHlUtejzLA

Design System: https://medium.com/beyond-360/5-steps-for-creating-a-design-system-7ac86e3808fc 

Atomic Design metodologija: Brad Frost 

Material Design: Material Guidelines

Human interface: iOS Guidelines

Design Principles: https://uxmisfit.com/2019/04/23/ui-design-in-practice-gestalt-principles/ 

Odličan članak s linkovima za UX/UI za još detaljnije istraživanje: 

https://uxdesign.cc/ultimate-start-guide-for-beginner-ux-ui-designer-b848be089589

Scrum in a nutshell: https://medium.com/@realjoselara/agile-scrum-process-in-a-nutshell-6ec32a59efb 

 

 

WEB

FRONTEND

Ključne stvari koje svaki frontend developer mora znati:

  • Odlično poznavanje CSS i HTML
  • Poznavati JavaScript programski jezik
  • Poznavati neki od CSS predprocesora (SASS, LESS,…)
  • Poznavati metodologije pisanja CSS-a (BEM)
  • Poznavati osnove rada Webpacka
  • Osnove responzivnog dizajna
  • Poznavati osnove React-a
  • Svrha Git-a i njegovo korištenje

Za dodatne bodove?

  • Osnove GraphQL-a
  • Poznavanje Jest/Enzyme ili nekog drugog testing library-ja

Ukoliko se odlučite za avanturu frontend developera prvi korak su HTML i CSS. Nakon što ste savladali dva osnovna temelja svake web stranice, vrijeme je za JavaScript! Nemojte pokleknuti pred kušnjom isprobavanja nekog JavaScript librarya ili frameworka prije učenja samog JavaScripta – radi stjecanja ispravne podloge i razumijevanja principa rada jezika potrebno je prvo dovesti poznavanje čistog JavaScripta na razinu pa se tek onda uhvatiti u koštac s nekim od (bez)brojnih librarya ili frameworka koji za njega postoje. JavaScript kao jezik na prvu ruku izgleda jednostavno i naivno dok ne krenete malo dublje istraživati. Sljedeći linkovi vam mogu pomoći u tome:

JavaScript Garden:

https://bonsaiden.github.io/JavaScript-Garden/

ES6:

http://marijnhaverbeke.nl/talks/es6_falsyvalues2015

Promises:

https://developers.google.com/web/fundamentals/primers/promises

Async things:

https://mostafa-samir.github.io/async-iterative-patterns-pt1/

How to handle undefined:

https://dmitripavlutin.com/7-tips-to-handle-undefined-in-javascript

Naravno, gore navedene vještine nikako nisu jedine stvari koje jedan frontend developer treba znati! Svakako ćete se susresti sa CSS pre- i postprocesorima, task runnerima i module bundlerima, da ne pričamo o već spomenutim JavaScript libraryima. Frontend development je dinamično područje te je izazovno ostati u korak s tehnologijom.

Ako te zanima posao u COBE-u, riješi zadatak na linku i javi nam se. A ako si student i želiš doći na praksu, probaj riješiti ovaj zadatak.

 

BACKEND

Ključne stvari koje svaki backend developer mora znati:

  • Poznavati načine izrade RESTful web servisa
  • Znati baratati JSONima
  • Poznavati mehanizme rada SQL i NoSQL baza podataka
  • Poznavati objektno orijentirani pristup programiranju
  • Poznavati osnovne uzorke dizajna
  • Poznavati osnove deploymenta aplikacije
  • Poznavati osnove rada s terminalom
  • Svrha Git-a i njegovo korištenje

Vidite li se ipak više u backend vodama, kao i u slučaju JavaScripta kod frontenda na prvom mjestu vam je potrebno poznavanje jezika. Što se backenda tiče, mogućnosti je više pa je nužno odabrati jedan jezik koji vam se sviđa i svoje znanje graditi na temelju njega. Prebaciti se na drugu platformu (npr. s Node-a na Rails) relativno je probavljivo pod pretpostavkom da ste savladali osnovne stvari koje su potrebne za upogonjivanje i razumijevanje backenda. Internet može biti zastrašujući ocean resursa i materijala za učenje pa smo pripremili nekoliko korisnih početnih točaka iz perspektive Node.js-a kojeg COBE koristi za upogonjivanje backenda:

REST API with Express and Mongo:

https://hackernoon.com/restful-api-design-with-node-js-26ccf66eab09

Project structure

https://blog.risingstack.com/node-hero-node-js-project-structure-tutorial/

Best Practices for Writing Node.js REST APIs

https://blog.risingstack.com/10-best-practices-for-writing-node-js-rest-apis/

Debugging Node in Webstorm

https://www.jetbrains.com/help/webstorm/running-and-debugging-node-js.html

Svaki backend developer bi trebao znati napraviti rutu na koju će se gore spomenuti frontend developer moći spojiti i dobiti podatke iz baze. Rad s bazama, kako relacijskim tako i nerelacijskim, uvijek će biti ključan faktor bez obzira na platformu.
Također, poznavanje strukture RESTful web servisa nužno je za osmišljavanje arhitekture backenda, kao i snalaženje u objektno orijentiranom pristupu programiranju. Za kraj, ne smijete se bojati terminala! Preko njega ćete izvršavati sve akcije kojima baratate backendom – ovo uključuje i verzioniranje preko Git-a te deployanje gotovog backenda.

 

 

QUALITY ASSURANCE  

Prije ulaska u svijet QA-a, najprije trebate provjeriti imate li svu potrebnu opremu kako biste postali neustrašivi QA vitez: 

  • Mreža
  • Sprej za kukce
  • Muholovka

Ako ste upravo pomislili “Što ja to čitam?”, strpite se, objasnit ćemo vam. Kako na QA gledamo kao na jedno, prije svega, zanimljivo i zabavno zanimanje, i ovaj QA Starter Kit odlučili smo započeti na zabavan način. Vežite se, krećemo!

P.S. Ako nisi primjetio, uvod smo napisali u obliku jednostavnijeg bug reporta kako bi dobio uvid u njegovu strukturu, a u nastavku ćeš saznati posjeduješ li potrebna znanja i vještine kako bi postao jedan od neustrašivih QA viteza. 

QA u svakodnevnom životu

Svatko od vas na neki način je tester. Npr. pri kupovini upaljača, prvo što ćete napraviti je provjeriti radi li, dok se vozite automobilom provjerit ćete koliko brzo može voziti, a ni odjeću nećete kupiti dok ju ne isprobate (većinom). Sve ove aktivnosti sastoje se od dijela u kojem vi nešto testirate, odnosno isprobavate. 

Zamislite sljedeću situaciju: Kupili ste televizor, novi QLEDTV iz 2019. Presretni ste i jedva ga čekate početi koristiti no nakon što ste ga upalili, primjetili ste sitne mrlje po ekranu. U početku ste ih odlučili ignorirati no nakon nekoliko dana ekran vam se počeo gasiti, dok vam je ton i dalje radio te su se preko cijelog ekrana počele pojavljivati bijele linije. Što se dogodilo? Iz nekog razloga na police u trgovini dospio je tehnički neispravan televizor. 

Zašto se to dogodilo? Zato što nitko nije niti provjerio televizor prije nego što je otišao u prodaju. 

Zaključak: Prilikom svake kupnje postoje određena očekivanja da je proizvod koji kupujemo ispravan i da savršeno obavlja svoju funkciju no tko je zaslužan da to tako zaista i bude?  QA.

Uvod u QA

Quality assurance ima jako važnu ulogu u procesu razvoja softwarea. Osim prijavljivanja i analize bugova zajedno s developerima, QA posao uključuje pisanje dokumentacije, analizu zahtjeva te ručno testiranje. Također, važno je istaknuti da ćeš uvijek morati biti u toku s novim tehnologijama te različitim platformama zbog dinamičnosti IT svijeta.

Kao QA susrest ćeš se s manualnim i automatskim testiranjem, a kojim ćeš se alatima sve koristiti ovisi o okruženju u kojem ćeš raditi. Kao početnik trebao bi biti upoznat s teorijom, alatima koji postoje i načinima na koji se testiranje može izvršiti. 

Jedna od bitnijih odlika svakog dobrog QA-a imati je razvijeno logičko razmišljanje. Zato smo osmislili nekoliko, možda banalnih, pitanja koja ti mogu pomoći provjeriti način na koji razmišljaš: 

  • Što je bitnije; isporučiti proizvod na vrijeme, proći što jeftinije ili osigurati njegovu kvalitetu? 
  • Možeš li se osvrnuti oko sebe i sa sigurnošću istaknuti nešto što nije pravilno ili uobičajeno?
  • Developer kaže: “To nije bug!” – Što ćeš napraviti? 
  • Zašto stolica zahtjeva 4 noge? 
  • Pronašli ste bug u aplikaciji i ne možete ga reproducirati. Kako biste to prijavili? 

Linkovi:

http://tryqa.com/what-are-the-software-development-life-cycle-sdlc-phases/

https://www.guru99.com/software-testing-seven-principles.html

https://www.softwaretestinghelp.com/how-to-set-defect-priority-and-severity-with-defect-triage-process/

https://www.istqb.org/downloads/send/51-ctfl2018/208-ctfl-2018-syllabus.html

https://www.lambdatest.com/blog/difference-between-manual-and-automation-testing/

https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf

https://www.youtube.com/watch?v=5FUdrBq-WFo&list=PL9ooVrP1hQOFP9H8Y15DVGCA6GavhgJ8a&index=1

https://marker.io/blog/bug-report-template/

 

Pitanja za provjeru znanja: 

  • Što je to Quality assurance?
  • Što je to Software Development Life Cycle? Gdje se tu uklapa QA?
  • Koja su to 7 principa testiranja?
  • Što je to priority? A što severity?
  • Koji ‘test typo-ovi’ postoje?
  • Koji ‘test level-i’ postoje?
  • Na koji način treba prijaviti pronađeni bug?
  • Koja je razlika između manualnog i automatskog testiranja?
  • Zašto relacija između manualnog i automatskog testiranja nije ‘ili’ već ‘i’
  • Kada se uvode automatski testovi?

Ako si ova pitanja riješio kao iz šale te misliš da imaš potrebne odlike jednog neustrašivog QA viteza – javi nam se. A možeš nam se javiti i ako ti neke stvari nisu jasne ili pak imaš druga pitanja vezana uz QA.

Kako se prijaviti za posao u COBE-u?

Natječaje za posao uvijek možeš provjeriti na našoj Web-stranici, a ako vidiš da nismo aktivno u potrazi za nekim novim, možeš nam poslati otvorenu prijavu na ivan.jurlina@cobeisfreh.com. Isto vrijedi i za studentske prakse. 

A ako tijekom učenja naiđeš na problem na koji nemaš odgovor, COBE developeri rado će uskočiti i pomoći ti. Možeš nas kontaktirati na mail: osijek@cobeisfresh.com ili putem naših profila na Facebooku, Twitteru i Instagramu.

Sretno :)

Najave događaja

  • Nema nadolazećih događaja.

Ostavi Komentar

Vaša adresa e-pošte neće biti objavljena. Nužna polja su označena s *