Gehe zum Hauptabschnitt
Chal­len­ges, trends and best prac­ti­ces  in Mobi­le App­li­ca­ti­on Development

Chal­len­ges, trends and best prac­ti­ces in Mobi­le App­li­ca­ti­on Development

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

We’re hea­ding towards a Mobi­le Eco­no­my. Peop­le spend ever more time on their Smart­pho­nes for
enter­tain­ment, shop­ping, pro­fes­sio­nal trai­ning and the like. Unsur­pri­sin­gly, Mobi­le Application
Deve­lo­p­ment is in high demand.

Sebas­ti­an (Ques­ti­on = Q): What are the most com­mon chal­len­ges in Mobi­le Application
Deve­lo­p­ment? Is it performance?

Code­lab Deve­lo­per Team (A = Ans­wer): As a UX/UI Design and deve­lo­per you have to bear in mind,
that the user group is anything but homo­ge­ne­ous: Users are of dif­fe­rent age, they are using different
lan­guages, tra­vel­ling to dif­fe­rent coun­tries. Your app should appeal to all of them.

Ano­t­her typi­cal chal­len­ge: Users have limi­ted access to inter­net. This requi­res you to come up with
good ide­as how to ensu­re a gre­at User Expe­ri­ence (UX), even if the Inter­net con­nec­tion is only
inter­mit­tent or isn’t avail­ab­le at all.

Addi­tio­nal­ly we have a lot of dif­fe­rent kind of mobi­le devices (smart glas­ses, smart wat­ches, tablets,
etc…) or dif­fe­rent Ope­ra­ting Sys­tems whe­re the app­li­ca­ti­on could or should be deployed.

Q: How do you typi­cal­ly approach a new Mobi­le Deve­lo­p­ment Project?

A: The first step is to defi­ne the pur­po­se and the busi­ness case of the app­li­ca­ti­on. We defi­ne the
tar­get group of users, select the devices and Ope­ra­ting Sys­tems that should be sup­por­ted. If our
cli­ents come up with deman­ding requi­re­ments and exo­tic fea­tures (this is qui­te often the case,
actual­ly), we’ll also do a fea­si­bi­li­ty study.

For some fea­tures we need to check whe­ther we get access to spe­ci­fic resour­ces of OS. The good
infor­ma­ti­on is that SDK’s for mobi­le deve­lo­p­ment pro­vi­de pret­ty good solu­ti­ons. Based on that
deve­lo­per can 100% focus on imple­men­ta­ti­on of fea­tures and doesn’t need to worry too much about
per­for­mance issues.

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

A: It is easy if some con­di­ti­ons 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 requi­re­ments con­sis­tent. That is, howe­ver, an ide­al situation –
the rea­li­ty in deve­lo­p­ment pro­jects is different.

As per our expe­ri­ence you always have to cope with chal­len­ges of some sort or ano­t­her. This
inclu­des chan­ges (or even cor­rec­tions) to the API. But that’s not meant to be a com­p­laint: We’re all
tech enthu­si­asts and we like chal­len­ges, we actual­ly like to crea­te some­thing that requi­res some
tech­ni­cal geni­us. We’re nerds, aren’t we?!

Q: Hacker Attacks and Data Leaka­ges are on the incre­a­se. Are Mobi­le App­li­ca­ti­ons also affected?
Can Mobi­le App­li­ca­ti­ons be made suf­fi­ci­ent­ly made secure?

A: In theo­ry you can make mobi­le apps suf­fi­ci­ent­ly 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 con­clu­si­on that 85% of mobile
apps vio­la­te secu­ri­ty stan­dards. Deve­lo­pers tend to for­get about fun­da­men­tal rules. Mobi­le apps,
for examp­le, are espe­cial­ly vul­nerable to man-in-the-midd­le attacks. Why? Becau­se they are
con­stant­ly con­nec­ting to dif­fe­rent and inse­cu­re WiFi net­works. The­re­fo­re it is cru­cial that
deve­lo­pers ensu­re encryp­ti­on for data trans­mis­si­on. That’s not always the case.

Q: What are some key con­si­de­ra­ti­ons to ensu­re a high app­li­ca­ti­on security?

A: Some apps don’t use strong enough encryp­ti­on for sto­ring sen­si­ti­ve user data such as financial
or health­ca­re. We’ve even seen app deve­lo­pers “hard­code” pass­words, which means they put
non-encryp­ted pass­words and keys into their source code. Black Hat Hackers can
rever­se-engi­neer the­se password.

Most of the time apps do use backend ser­vices to exchan­ge data. It’s cri­ti­cal to secu­re these
end­points as well. If ser­ver-side ser­vices are not secu­re enough even the most advan­ced apps
could be hacked.

Q: There’s this high­ly popu­lar SDK for Mobi­le Deve­lo­p­ment cal­led Flut­ter. You’ve used it already.
Can you intro­du­ce Flut­ter short­ly and exp­lain, what you par­ti­cu­lar­ly like about it?

A: Flut­ter is the latest cross-plat­form solu­ti­on intro­du­ced by Goog­le in 2018. Cross-platform
frame­works use “wri­te once, run ever­y­whe­re” approach. 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 cou­p­le of gre­at fea­tures that make app deve­lo­p­ment quick and easy. ‘Hot
rel­oad’, for examp­le: It give deve­lo­pers a live pre­view of his/her app. That’s gre­at for rapid UI
deve­lo­p­ment, tes­ting and debug­ging and it’s way fas­ter than nati­ve programming.

The other advan­ta­ge is the gre­at docu­men­ta­ti­on, and the­re is a big com­mu­ni­ty of developers.
Ever­yo­ne can deve­lop and publish his/her own Flut­ter packa­ge (kind of a third par­ty library).
Tho­se packa­ges get ranks accord­ing 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­gramming lan­guage. It’s
easy, modern and sup­ports reac­ti­ve pro­gramming for apps (which is gre­at news for devs).

Q: Do you obser­ve any inte­res­ting trends in Mobi­le Apps, in Mobi­le Development?

A: Actual­ly, there’s a lot inte­res­ting stuff going on. Machi­ne lear­ning, Arti­fi­cial Intelligence
tech­no­lo­gy is incre­a­singly being used in mobi­le apps. Image reco­gni­ti­on, for examp­le, can help a
user with crea­ting a digi­tal cata­lo­gue of his house plants. Or warn about pos­si­ble inappropriate
tre­at­ment. Bio­metrics and facial reco­gni­ti­on are high­ly reli­able methods for authenticating
smart­pho­ne users. We shouldn’t for­get Gaming: A rea­listic imi­ta­ti­on of human-like behavior
offers exci­ting pos­si­bi­li­ties, if you play against the com­pu­ter as an oppo­nent, for example.

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

A: Oh yes, the­re is a trend towards ani­ma­ted images and micro-inter­ac­tions. That means: A lot of
moti­on on splash screens and during inter­ac­tions with UI com­pon­ents like tab bars, menus, even
on the full­screen back­grounds. All this thanks to a very good per­for­mance of smart­pho­nes with
ever bet­ter hardware.

Let’s not for­get about neu­mor­phism, which crea­tes some 3D effect. Neu­mor­phism allows to
crea­te stun­ning effects, such as UI com­pon­ents “floa­ting” over the back­ground. This can be
achie­ved by app­ly­ing bright and dark shadows oppo­si­te­ly and some­ti­mes a slight amount of color
gra­di­ent. It’s eye-catching and easy to imple­ment by developers!

Q: Why did you actual­ly choo­se to beco­me Mobi­le App developers?

Jacek: In my case it was a strai­ght path from being an elec­tro­nic musi­ci­an with over 15 years
expe­ri­ence 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 record­ing sound effects for living.
A friend of mine which, was a mobi­le music soft­ware deve­lo­per, com­mis­sio­ned me to make an
audio con­tent for his products.

Sin­ce that moment I star­ted designing and then pro­gramming my own music apps for iPad
devices. iOS was a natu­ral choice for me as Apple’s Core­Au­dio frame­work was offe­ring great
per­for­mance 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 ent­i­re pro­duc­tion path,
from designing UI, through imple­men­ta­ti­on and tes­ting fea­tures, to the app release.

Michal: I always wan­ted to be a part of new tech­no­lo­gy. Mobi­le deve­lo­p­ment for­ces you to use
the latest tech solu­ti­ons. You have to fol­low mobi­le trends and incor­po­ra­te them into your
solu­ti­ons. 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 peop­le use mobi­le apps wide­ly and they are easi­ly acces­si­ble. That also can
give you ever­y­day moti­va­ti­on. It’s gre­at when you see that your app grows ever­y­day and users
give you gre­at feed­back. This is a thing every creator would appreciate.

Want to learn more about our exper­ti­se in Mobi­le App­li­ca­ti­on development? 

Click here