We’re head­ing towards a Mobile Eco­nomy. People spend ever more time on their Smart­phones for
enter­tain­ment, shop­ping, pro­fes­sion­al train­ing and the like. Unsur­pris­ingly, Mobile Application
Devel­op­ment is in high demand.

Sebasti­an (Ques­tion = Q): What are the most com­mon chal­lenges in Mobile Application
Devel­op­ment? Is it performance?

Codelab Developer Team (A = Answer): As a UX/UI Design and developer you have to bear in mind,
that the user group is any­thing but homo­gen­eous: Users are of dif­fer­ent age, they are using different
lan­guages, trav­el­ling to dif­fer­ent coun­tries. Your app should appeal to all of them.

Anoth­er typ­ic­al chal­lenge: Users have lim­ited access to inter­net. This requires you to come up with
good ideas how to ensure a great User Exper­i­ence (UX), even if the Inter­net con­nec­tion is only
inter­mit­tent or isn’t avail­able at all.

Addi­tion­ally we have a lot of dif­fer­ent kind of mobile devices (smart glasses, smart watches, tablets,
etc…) or dif­fer­ent Oper­at­ing Sys­tems where the applic­a­tion could or should be deployed.

Q: How do you typ­ic­ally approach a new Mobile Devel­op­ment Project?

A: The first step is to define the pur­pose and the busi­ness case of the applic­a­tion. We define the
tar­get group of users, select the devices and Oper­at­ing Sys­tems that should be sup­por­ted. If our
cli­ents come up with demand­ing require­ments and exot­ic fea­tures (this is quite often the case,
actu­ally), we’ll also do a feas­ib­il­ity study.

For some fea­tures we need to check wheth­er we get access to spe­cif­ic resources of OS. The good
inform­a­tion is that SDK’s for mobile devel­op­ment provide pretty good solu­tions. Based on that
developer can 100% focus on imple­ment­a­tion of fea­tures and doesn’t need to worry too much about
per­form­ance issues.

Q: How easy is it, for example, to integ­rate a Shop­ping sys­tem into an App?

A: It is easy if some con­di­tions are met: You have a well-defined UX/UI design. The API for the shop
sys­tems is well-doc­u­mented. And the require­ments con­sist­ent. That is, how­ever, an ideal situation –
the real­ity in devel­op­ment pro­jects is different.

As per our exper­i­ence you always have to cope with chal­lenges of some sort or anoth­er. This
includes changes (or even cor­rec­tions) to the API. But that’s not meant to be a com­plaint: We’re all
tech enthu­si­asts and we like chal­lenges, we actu­ally like to cre­ate some­thing that requires some
tech­nic­al geni­us. We’re nerds, aren’t we?!

Q: Hack­er Attacks and Data Leak­ages are on the increase. Are Mobile Applic­a­tions also affected?
Can Mobile Applic­a­tions be made suf­fi­ciently made secure?

A: In the­ory you can make mobile apps suf­fi­ciently secure. How­ever, in prac­tice there’s a lot of
room for improve­ment. Some reports on that issue come to the con­clu­sion that 85% of mobile
apps viol­ate secur­ity stand­ards. Developers tend to for­get about fun­da­ment­al rules. Mobile apps,
for example, are espe­cially vul­ner­able to man-in-the-middle attacks. Why? Because they are
con­stantly con­nect­ing to dif­fer­ent and insec­ure WiFi net­works. There­fore it is cru­cial that
developers ensure encryp­tion for data trans­mis­sion. That’s not always the case.

Q: What are some key con­sid­er­a­tions to ensure a high applic­a­tion security?

A: Some apps don’t use strong enough encryp­tion for stor­ing sens­it­ive user data such as financial
or health­care. We’ve even seen app developers “hard­code” pass­words, which means they put
non-encryp­ted pass­words and keys into their source code. Black Hat Hack­ers can
reverse-engin­eer these password.

Most of the time apps do use backend ser­vices to exchange data. It’s crit­ic­al to secure these
end­points as well. If serv­er-side ser­vices are not secure enough even the most advanced apps
could be hacked.

Q: There’s this highly pop­u­lar SDK for Mobile Devel­op­ment called Flut­ter. You’ve used it already.
Can you intro­duce Flut­ter shortly and explain, what you par­tic­u­larly like about it?

A: Flut­ter is the latest cross-plat­form solu­tion intro­duced by Google in 2018. Cross-platform
frame­works use “write once, run every­where” approach. That means that a developer can write
code once and deploy it on many plat­forms such as iOS or Android.

Flut­ter also provides a couple of great fea­tures that make app devel­op­ment quick and easy. ‘Hot
reload’, for example: It give developers a live pre­view of his/her app. That’s great for rap­id UI
devel­op­ment, test­ing and debug­ging and it’s way faster than nat­ive programming.

The oth­er advant­age is the great doc­u­ment­a­tion, and there is a big com­munity of developers.
Every­one can devel­op and pub­lish his/her own Flut­ter pack­age (kind of a third party library).
Those pack­ages get ranks accord­ing to com­munity likes (that’s kind of social portal for Flutter
developers). It’s also worth men­tion­ing that Flut­ter uses DART as a pro­gram­ming lan­guage. It’s
easy, mod­ern and sup­ports react­ive pro­gram­ming for apps (which is great news for devs).

Q: Do you observe any inter­est­ing trends in Mobile Apps, in Mobile Development?

A: Actu­ally, there’s a lot inter­est­ing stuff going on. Machine learn­ing, Arti­fi­cial Intelligence
tech­no­logy is increas­ingly being used in mobile apps. Image recog­ni­tion, for example, can help a
user with cre­at­ing a digit­al cata­logue of his house plants. Or warn about pos­sible inappropriate
treat­ment. Bio­met­rics and facial recog­ni­tion are highly reli­able meth­ods for authenticating
smart­phone users. We shouldn’t for­get Gam­ing: A real­ist­ic imit­a­tion of human-like behavior
offers excit­ing pos­sib­il­it­ies, if you play against the com­puter as an oppon­ent, for example.

Q: Do you observe any trends in the UI design of Mobile Apps?

A: Oh yes, there is a trend towards anim­ated images and micro-inter­ac­tions. That means: A lot of
motion on splash screens and dur­ing 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­form­ance of smart­phones with
ever bet­ter hardware.

Let’s not for­get about neu­morph­ism, which cre­ates some 3D effect. Neu­morph­ism allows to
cre­ate stun­ning effects, such as UI com­pon­ents “float­ing” over the back­ground. This can be
achieved by apply­ing bright and dark shad­ows oppos­itely and some­times a slight amount of color
gradi­ent. It’s eye-catch­ing and easy to imple­ment by developers!

Q: Why did you actu­ally choose to become Mobile App developers?

Jacek: In my case it was a straight path from being an elec­tron­ic musi­cian with over 15 years
exper­i­ence into the world of pro­fes­sion­al iOS development.

At some point I was com­pos­ing a lot of video games music and record­ing sound effects for living.
A friend of mine which, was a mobile music soft­ware developer, com­mis­sioned me to make an
audio con­tent for his products.

Since that moment I star­ted design­ing and then pro­gram­ming my own music apps for iPad
devices. iOS was a nat­ur­al choice for me as Apple’s Cor­eAu­dio frame­work was offer­ing great
per­form­ance and sta­bil­ity for play­ing music live using both tab­lets and smart­phones. I really
enjoyed that fact that even being a single developer I was in con­trol of the entire pro­duc­tion path,
from design­ing UI, through imple­ment­a­tion and test­ing fea­tures, to the app release.

Michal: I always wanted to be a part of new tech­no­logy. Mobile devel­op­ment forces you to use
the latest tech solu­tions. You have to fol­low mobile trends and incor­por­ate them into your
solu­tions. That’s some­thing which was always excit­ing from my per­spect­ive and motiv­ated me to
improve and devel­op my knowledge.

Since over a dec­ade people use mobile apps widely and they are eas­ily access­ible. That also can
give you every­day motiv­a­tion. It’s great when you see that your app grows every­day and users
give you great feed­back. This is a thing every cre­at­or would appreciate.

Want to learn more about our expert­ise in Mobile Applic­a­tion development? 

Click here