Przejdź do głównej sekcji
Chal­len­ges, trends and best prac­ti­ces  in Mobi­le Appli­ca­tion Development

Chal­len­ges, trends and best prac­ti­ces in Mobi­le Appli­ca­tion Development

Michal Szatkowski, Jacek Dojwa, Hubert Kaminski, Sebastian Zang Michal Szatkowski, Jacek Dojwa, Hubert Kaminski, Sebastian Zang

We’re heading towards a Mobi­le Eco­no­my. People spend ever more time on the­ir Smart­pho­nes for
enter­ta­in­ment, shop­ping, pro­fes­sio­nal tra­ining and the like. Unsur­pri­sin­gly, Mobi­le Application
Deve­lop­ment is in high demand.

Seba­stian (Question = Q): What are the most com­mon chal­len­ges in Mobi­le Application
Deve­lop­ment? Is it performance?

Code­lab Deve­lo­per Team (A = Answer): As a UX/UI Design and deve­lo­per you have to bear in mind,
that the user gro­up is any­thing but homo­ge­ne­ous: Users are of dif­fe­rent age, they are using different
lan­gu­ages, tra­vel­ling to dif­fe­rent coun­tries. Your app sho­uld appe­al to all of them.

Ano­ther typi­cal chal­len­ge: Users have limi­ted access to inter­net. This requ­ires you to come up with
good ide­as how to ensu­re a gre­at User Expe­rien­ce (UX), even if the Inter­net con­nec­tion is only
inter­mit­tent or isn’t ava­ila­ble at all.

Addi­tio­nal­ly we have a lot of dif­fe­rent kind of mobi­le devi­ces (smart glas­ses, smart wat­ches, tablets,
etc…) or dif­fe­rent Ope­ra­ting Sys­tems whe­re the appli­ca­tion could or sho­uld be deployed.

Q: How do you typi­cal­ly appro­ach a new Mobi­le Deve­lop­ment Project?

A: The first step is to defi­ne the pur­po­se and the busi­ness case of the appli­ca­tion. We defi­ne the
tar­get gro­up of users, select the devi­ces and Ope­ra­ting Sys­tems that sho­uld be sup­por­ted. If our
clients come up with deman­ding requ­ire­ments and exo­tic featu­res (this is quite often the case,
actu­al­ly), we’ll also do a feasi­bi­li­ty study.

For some featu­res we need to check whe­ther we get access to spe­ci­fic reso­ur­ces of OS. The good
infor­ma­tion is that SDK’s for mobi­le deve­lop­ment pro­vi­de pret­ty good solu­tions. Based on that
deve­lo­per can 100% focus on imple­men­ta­tion of featu­res and doesn’t need to wor­ry too much about
per­for­man­ce issues.

Q: How easy is it, for exam­ple, to inte­gra­te a Shop­ping sys­tem into an App?

A: It is easy if some con­di­tions are met: You have a well-defi­ned UX/UI design. The API for the shop
sys­tems is well-docu­men­ted. And the requ­ire­ments con­si­stent. That is, howe­ver, an ide­al situation –
the reali­ty in deve­lop­ment pro­jects is different.

As per our expe­rien­ce you always have to cope with chal­len­ges of some sort or ano­ther. This
inc­lu­des chan­ges (or even cor­rec­tions) to the API. But that’s not meant to be a com­pla­int: We’re all
tech enthu­sia­sts and we like chal­len­ges, we actu­al­ly like to cre­ate some­thing that requ­ires some
tech­ni­cal genius. We’re nerds, aren’t we?!

Q: Hac­ker Attacks and Data Leaka­ges are on the incre­ase. Are Mobi­le Appli­ca­tions also affected?
Can Mobi­le Appli­ca­tions be made suf­fi­cien­tly made secure?

A: In the­ory you can make mobi­le apps suf­fi­cien­tly secu­re. Howe­ver, in prac­ti­ce there’s a lot of
room for impro­ve­ment. Some reports on that issue come to the conc­lu­sion that 85% of mobile
apps vio­la­te secu­ri­ty stan­dards. Deve­lo­pers tend to for­get abo­ut fun­da­men­tal rules. Mobi­le apps,
for exam­ple, are espe­cial­ly vul­ne­ra­ble to man-in-the-mid­dle attacks. Why? Becau­se they are
con­stan­tly con­nec­ting to dif­fe­rent and inse­cu­re WiFi networks. The­re­fo­re it is cru­cial that
deve­lo­pers ensu­re encryp­tion for data trans­mis­sion. That’s not always the case.

Q: What are some key con­si­de­ra­tions to ensu­re a high appli­ca­tion security?

A: Some apps don’t use strong eno­ugh encryp­tion for sto­ring sen­si­ti­ve user data such as financial
or heal­th­ca­re. We’ve even seen app deve­lo­pers “hard­co­de” pas­swords, which means they put
non-encryp­ted pas­swords and keys into the­ir sour­ce code. Black Hat Hac­kers can
rever­se-engi­ne­er the­se password.

Most of the time apps do use bac­kend servi­ces to exchan­ge data. It’s cri­ti­cal to secu­re these
end­po­ints as well. If server-side servi­ces are not secu­re eno­ugh even the most advan­ced apps
could be hacked.

Q: There’s this high­ly popu­lar SDK for Mobi­le Deve­lop­ment cal­led Flut­ter. You’ve used it already.
Can you intro­du­ce Flut­ter shor­tly and expla­in, what you par­ti­cu­lar­ly like abo­ut it?

A: Flut­ter is the latest cross-plat­form solu­tion intro­du­ced by Google in 2018. Cross-platform
fra­me­works use “wri­te once, run eve­ry­whe­re” appro­ach. That means that a deve­lo­per can write
code once and deploy it on many plat­forms such as iOS or Android.

Flut­ter also pro­vi­des a couple of gre­at featu­res that make app deve­lop­ment quick and easy. ‘Hot
relo­ad’, for exam­ple: It give deve­lo­pers a live pre­view of his/her app. That’s gre­at for rapid UI
deve­lop­ment, testing and debug­ging and it’s way faster than nati­ve programming.

The other advan­ta­ge is the gre­at docu­men­ta­tion, and the­re is a big com­mu­ni­ty of developers.
Eve­ry­one can deve­lop and publish his/her own Flut­ter pac­ka­ge (kind of a third par­ty library).
Tho­se pac­ka­ges get ranks accor­ding to com­mu­ni­ty likes (that’s kind of social por­tal for Flutter
deve­lo­pers). It’s also worth men­tio­ning that Flut­ter uses DART as a pro­gram­ming lan­gu­age. It’s
easy, modern and sup­ports reac­ti­ve pro­gram­ming for apps (which is gre­at news for devs).

Q: Do you obse­rve any inte­re­sting trends in Mobi­le Apps, in Mobi­le Development?

A: Actu­al­ly, there’s a lot inte­re­sting stuff going on. Machi­ne lear­ning, Arti­fi­cial Intelligence
tech­no­lo­gy is incre­asin­gly being used in mobi­le apps. Ima­ge reco­gni­tion, for exam­ple, can help a
user with cre­ating a digi­tal cata­lo­gue of his house plants. Or warn abo­ut possi­ble inappropriate
tre­at­ment. Bio­me­trics and facial reco­gni­tion are high­ly relia­ble methods for authenticating
smart­pho­ne users. We shouldn’t for­get Gaming: A reali­stic imi­ta­tion of human-like behavior
offers exci­ting possi­bi­li­ties, if you play aga­inst the com­pu­ter as an oppo­nent, for example.

Q: Do you obse­rve any trends in the UI design of Mobi­le Apps?

A: Oh yes, the­re is a trend towards ani­ma­ted ima­ges and micro-inte­rac­tions. That means: A lot of
motion on splash scre­ens and during inte­rac­tions with UI com­po­nents like tab bars, menus, even
on the ful­l­scre­en back­gro­unds. All this thanks to a very good per­for­man­ce of smart­pho­nes with
ever bet­ter hardware.

Let’s not for­get abo­ut neu­mor­phism, which cre­ates some 3D effect. Neu­mor­phism allows to
cre­ate stun­ning effects, such as UI com­po­nents “flo­ating” over the back­gro­und. This can be
achie­ved by apply­ing bri­ght and dark sha­dows oppo­si­te­ly and some­ti­mes a sli­ght amo­unt of color
gra­dient. It’s eye-cat­ching and easy to imple­ment by developers!

Q: Why did you actu­al­ly cho­ose to beco­me Mobi­le App developers?

Jacek: In my case it was a stra­ight path from being an elec­tro­nic musi­cian with over 15 years
expe­rien­ce into the world of pro­fes­sio­nal iOS development.

At some point I was com­po­sing a lot of video games music and recor­ding sound effects for living.
A friend of mine which, was a mobi­le music softwa­re deve­lo­per, com­mis­sio­ned me to make an
audio con­tent for his products.

Sin­ce that moment I star­ted desi­gning and then pro­gram­ming my own music apps for iPad
devi­ces. iOS was a natu­ral cho­ice for me as Apple’s Core­Au­dio fra­me­work was offe­ring great
per­for­man­ce and sta­bi­li­ty for play­ing music live using both tablets and smart­pho­nes. I really
enjoy­ed that fact that even being a sin­gle deve­lo­per I was in con­trol of the enti­re pro­duc­tion path,
from desi­gning UI, thro­ugh imple­men­ta­tion and testing featu­res, to the app release.

Michal: I always wan­ted to be a part of new tech­no­lo­gy. Mobi­le deve­lop­ment for­ces you to use
the latest tech solu­tions. You have to fol­low mobi­le trends and incor­po­ra­te them into your
solu­tions. That’s some­thing which was always exci­ting from my per­spec­ti­ve and moti­va­ted me to
impro­ve and deve­lop my knowledge.

Sin­ce over a deca­de people use mobi­le apps wide­ly and they are easi­ly acces­si­ble. That also can
give you eve­ry­day moti­va­tion. It’s gre­at when you see that your app grows eve­ry­day and users
give you gre­at feed­back. This is a thing eve­ry cre­ator would appreciate.

Want to learn more abo­ut our exper­ti­se in Mobi­le Appli­ca­tion development? 

Click here