[Music]
Good afternoon everyone, how are you,
I confess that it's a little strange that you're here
talking and you're listening through your
headphones, but that's okay, so the purpose of
my talk today is to talk a little
more about the development of
iOS applications, how do we do to
develop these applications and
also talk a little more about
user experience, okay, so let me
introduce myself here for those who don't
know me yet, my name is Giovana moeler,
I'm a computer technician, I
informed myself there in 2019, along with
high school and Also today I'm grateful for the year and
information systems at Unesp
I'm also an iOS instructor at Lura, including already
doing Javazinho here. There are some
courses there for anyone interested and
I'm also a content creator on
some social networks like Instagram
YouTube. Can you find me? there for
gercode but in the end there will be a QR Coach
also with my social networks for
those who are interested,
well so the first thing here that
we need to think about is that when
we develop mobile applications We
currently have two types of development, which is development
native and hybrid development what
would native development be
when you develop for each
specific operating system? So
you have two applications that
need to work in the same way but
you have an application for
iOS and an application also for Android
that are the two operating systems that are
predominant in the world of Moble, well in
Android we have some technologies
like Java and Cosmim, whoever is
Android, then you will definitely know I don't
know anything about Android, okay, so it's
really quite separate. These
technologies are on the side of iOS, which is
the objective here in today's lecture, we
have Swift and also the objective, I will
talk a little more about the
differences between these two languages
later on. Well, on the objective side, we
have self-performance because you are
there side by side with the
operating system but we also have a high
cost because imagine a company needs to
hire two
development teams, one
IOS and the other Android, which really generates
a high cost and we also have
easier access to sports resources
because again we are there alongside
side with the operating system
we have greater control over the
appearance and user experience
because we are developing
following the guidelines of each
good software and on the other side we have
hybrid development which is also
gaining a lot of strength in the current market and
development multiple platform,
that is, we have the same code base
for
IOS and Android. So we only have a
single application that works for
both platforms. Under the hood, we
have a compilation for native, but
there are some frameworks, for example, aionic, I do
n't know if Has anyone here heard
about aionic, that it works like
a system like the web, you've seen that it kind of
runs the web under the hood, but the
most common frameworks nowadays for
hybrid development, we have
flutter and react Native, which win
really a lot of strength in the market we have
a lower cost also because we
only need one development team
that will develop Open the application and
on the other hand they may suffer
a little bit in performance it may have a
lower performance and also the access to
native resources it It may also be a
little difficult, it may
require dependency on third parties,
like me, for example, in the case of React Native,
not wanting to play Ratenate, nothing
of the sort came up. I have already developed it for React
Native, but you have a high
dependency on third parties, right, you have
several libraries there. not running there, right
in the code, so you can sin a
little there in terms of availability,
security, in short, several other issues,
well, so now let's talk about
iOS, even in general, iOS. We have two
main programming languages
for this development, which is Swift,
which is a more modern programming language
from Apple that we use in
all our projects, nowadays
we have the objective that it is an
older language, a really old one,
right, but that is still in use
in some projects currently, including
this one, if you are going to work on a
project there which has been on the market for a long time,
you will probably come
across this language with some
codes written in objective si, I wouldn't
say that you need to learn
objective yes to start in the world
of iOS development. But you may come
across this code and not
You will necessarily need
to write an objective code, if it is more so that
you can read it, understand how it
works and even perhaps you will
perspire, so for the suite language,
now talking about a little bit about the
characteristics of the Switch, right, we are going to
hit the nail on the head, right, this language that
we you need to learn so Switch is
a language, an object-oriented language
and also a protocol-oriented language, it is the
first language that they consider
protocol-oriented, right? So, speaking a
little more technically, right,
protocols, which are those sets of
rules when one conforms to that
set. of rules they then need to
follow to the letter, it is a language that is also
strongly stipulated and also has
interoperability with the objective, yes,
so you can make this change
normally
here, I brought an example, I don't know if you will be able
to see it correctly, but we have
here in the top corner the we have the
objective and in the bottom corner we have
an example of the suite language. I usually
even joke that the object was,
it is a bracket-oriented language.
In this example, there isn't much, but if
you take an objective code, you
will see a lot of brackets and It's really
a very strange language,
let's say, it's a more
verbose language and also a little difficult to
understand, right? On the other hand, we have
Swift, which is a much easier language,
much simpler, it
's actually the language we program with
today. In Day
Oh my God
one thing that always asks me a lot is
if I need a Mac OS to start
studying about IOS the answer is that
unfortunately you do because if you
want to start studying suite you
won't need one because Switch
is an open language. So you
can run it on any machine
regardless of the operating system, right?
So you can run it on Windows,
on Linux, there are several compilers also
online that allow you to run this
language. you
need the ex
code, which is the idea, that is, the environment and
development that we use to
build iOS applications. So what do you
have there?
publication,
all of this is done by ex code and
unfortunately it will only run on Mac or on
this operating system, so I brought
here some alternatives for those who
want to venture out a little on IOS,
there is this application called Swift
playgrounds and it is available for
iPad It's also for Mac US, but as the
focus is on us not talking about Mac
West here, it's also for iPad and the
application is very intuitive. Many
people who are starting to program
start with this application because it has
several games like that, you know? It's a very
lively thing, it's really cool, right?
Whoever has the opportunity to explore
a little more and you
can even build applications through the
playground suite using the Framework
called Swift, because I'm also going to
talk a little more about it,
some other alternatives that They're not
very cool, right, but I've never done it,
I don't know how to do it, but we
have a Hackintosh, which is basically
when you run a Mac or a
machine that isn't a Mac, Apple doesn't
recommend that, but it's there, right, whoever wants it
Take a chance, you can have a Hackintosh, we
also have the virtual machine, which is the
virtual machine and also the Mac incloud, what
is the Mac incloud, is when you rent a
service in the cloud, this service can
be a little expensive, but if you
want to test this, If anyone wants to
test it, it might be worth it in the first
month, something like that and some options
that are more affordable then
older devices Obviously you won't need
a Macbook Pro Ultra Max, I don't know the
best one on the market, you definitely won't need it
And also the Mac Mini which
is that Apple device that also
runs the Mac iOS
now so let's talk a little
about the frameworks we use to
build iOS applications We have
two of them on the market which are the kit and the
Swift come on
it was launched in 2008 it is
really very old it has been working
since iOS 2.0 and for this reason it is
used in most applications so far
how can we
use this Framework we
build the layout in two ways
practically which is with storyboard
Imagine starboard it is the only file
there that contains all the screens of your
application and the entire navigation flow
between these screens and I saw Code
is the programmatic way for you
to build your screens Why did they
come, right Coach because that this
approach is so important in the
market because imagine the storyboard is
a single file So imagine there are several
duties messing with this single file which
under the hood is still an XML So
imagine the amount of conflict that doesn't
exist right there in the system versioning
for this reason, so they came up with
this Will code approach, which is the
programmatic way for us
to build these interfaces, but you can also
mix the two without any problems
in terms of programming, right? They
follow a more imperative approach But
it also has then more maturity in the
market because again It is very
old, launched in 2008, I think it is
2008 and so it is more used
in the job market so I always say
if you want to start in
iOS development Are you looking for a vacancy in the job
market? work You need to
learn the kit, but it's a
little more difficult than the
sushi I'm going to show here, but it's
also worth it.
I brought an example of code here, I
don't know if you'll be able to see it
very well, but then This is basically
a Hello World, right, classic for
everyone, but well, as I said, this is
called an object-oriented language,
so you will see a lot of use of classes,
use of all properties, right,
object orientation, right, like inheritance, anyway,
and here, basically, I'm creating
a text here, a Hallo Word, assigning a
color to it, also talking about the
font size and finally I'm placing
it in the center of the screen both
horizontally and vertically, it's
a more verbose code, right? Mainly
I think that whoever works there with
hybrid development you do it
here in two lines, I don't know, but it's a
code that's actually a little more nervous
now, so let's talk a little bit
about sushiway that came to
revolutionize the way we
develop applications there iOS
launch in 2019 It's very recent and
it It's super similar to React Native
with Flutter So whoever has already tested it can
confirm what I'm talking about, it
also has a very
interesting feature called Live
PorView, which basically allows you to
see the changes in your code in
real terms. So there's a little simulator there in the
corner where you can see the
changes A lot of people even ask me
Ah, which vscote extension do
you use to show this I say
no no
but this possibility is really cool
because before you know No you like we have to
compile our application every time
we make a modification that can
take a while, you know, in very
large projects and a project that I worked on, the
first compilation of the day, took
around 30 minutes to an hour, so there's
really a lot to compile
because it's a project very big,
so for you to start, right, build
applications there consw Swift why you
need a version of iOS higher than
13.0, which limits a lot of people
nowadays, right, because some people
are still on older versions of iOS,
like I believe 11 isn't I know if there
are still some people in 11 but there must be,
right? There are always some people in 12
too, so this is really a
limiting factor for building applications
with Swiftware in terms of programming,
there is a more declarative approach that
is based on views, again
extremely similar to flutter for
example you have there Row you Collor
anyway very similar to sushiway it
has here Multiple platform support
when I say multiple in the way I don't
mean that you can run it on
Android it's not that multiple in the way
I am Speaking of which is the fact that you can
build both apps for
iOS,
for the iPad, and for those
for the watch, and also for Web TV, with
the Macy TV app, you can also
build So everything on a
single base code that makes it much easier
if you want to bring your application
to several people,
well then Apple sells swishway
as the future of iOS development. I
really believe it's because
Apple brings a lot of new features in relation
to swiftware, much more than for
White for example, at www.dc in
2023, most of the new features were
practically not only from 2023 but also
previous ones, Apple has been focusing
a lot on swiftware and that's really what
they want for the future, but we
also need to consider the present and
nowadays we have many more
applications built with iquiti than it
consists of Wow, well, we
also have interoperability with you like,
so we can
normally write code and the hot air inside
swifthwai And we also still have to wait a
little bit, right? maturity there to
start actually putting it on the market, right,
bringing all this experience,
that's why I brought another example that
I think you will simply opt
for Sushi than for imacity because it
really is much simpler the way
we write here the code with
you I kit sorry consume I'm
basically doing the same thing I
was doing with you like it I'm
putting the text hello world here
in the center of the screen I'm assigning, right, what do
we say, these
property modifiers they As it says, right? the name they
modify ours see so remember
everything is a saw on swifthwaii for example
it's the saw we can put
text on our screen and this
bottom profile it's basically the profile should
have put a photo like this of the
whole idea but I didn't put it, but it's the
profile that is there on the side for
us to view. So,
real-time modifications are
much easier, I know,
right, so now we need to talk
a little here, right, about interface and
user experience, because we
have several sizes of interface
when we are going to build a
mobile application So we have to
serve all users in these
respective interfaces so we have had
it since the iPhone, I don't know which is the
smallest iPhone model I think it is the case
nowadays We have people ranging from these
users to users also of the iPhone
14 Pro Max. I believe that it is the largest
interface size today, so we
always need to think about this in terms of
responsibility. Accessibility is also
extremely important in the project
I worked on.
we didn't go through the
accessibility team there to
check if everything was ok and another
cool part also here at Apple is
the godlines interface which is basically
a definitions guide, right a guide to a
guideline on how you should build
your application so there they show
Oh a button is better constructed this
way the texts you have these
font sizes so it's really cool a
guide like this is really cool even for those who
For us to always stay there tied
precisely to the operating system, right
Always provide this experience
so
that it is very similar to the
operating system, a
very important part is visual feedback and
animations. Apple focuses a lot on
animations.
And also some features that
improve the user experience, such as the
Active widget, I will show it here,
right, so this first image is the
Live Active I don't know if you saw it but
I think it launched on iOS 16 if I'm not
mistaken and I loved this functionality
here from Uber from iFood as well which you
can see in real time on
your phone's lock screen and we also have it there
the widget, which is like
little containers like that of your
application, is also very cool.
Now I'm going to talk a little bit about how
we can publish the application in the
App Store, well, so we have it. You
actually need to have this
Apple developer account. It costs 99
dollars per year, it's a very
steep price, but you can also have
several other advantages when we
talk about this account
and the process can be a little
rigorous because Apple weighs a
lot on the security of its applications,
I'm not talking about it here. in the case of Android,
which Android does not value, but Apple
is just coming with this process that is a
little rigorous, right, so you can put
your application into production
and finally, we also have here the use of
flight testing, which is basically
Beta testing. of applications, so instead of
sending it directly to production, you
send it there for testing, you can
even send it to your friends
and then you can really test it,
right, collect this information, feedback
from people so that you can then put it in the
publication
and now so I'm going to talk a little bit
here about the focus points in
learning that you need to know
in order to become an
IOS developer, well, I would say here that you need to
know the suite language, right?
instead of learning the objective, yes
You also need to know the ex
code, which is the idea that we use
for iOS development, right? In short, it is
essential for any
developer. It is not just for the case
of iOS, building layouts, so
how do you you build your application's layout,
how do you define these
user interfaces? So until you define it
here, first of all, with the storyboard, which
is Drag and John. I didn't even
talk about it, but the starboard is
very friendly for beginners because it
has a tool for Dragon drop
So you simply drag the
elements like this to the screen, which is
amazing, right, many beginners will
love this approach and then with
Code, which is again that
thematic way we develop
applications and which is widely used in
companies, also good use of High layout,
contrientes that It's basically the rules
that we define the elements like on
our screen, this helps a lot in terms
of responsibility, also requests
for external services such as any and
front-end development, we are
always communicating there with the back end
communicating with the API, so we need to
learn how to do it, right? requests for
external services some architectures
here that I put mvc which is the Model
vi the Controller And also the mvpm Right the
modalvio and saw fashion the way
we architect how we separate
the responsibilities like in our
application there are other architectures
that I I didn't put them here but they are also
very important but not at
first, so at first I
would say that these are the two that you
need to do, you need to learn, including
MVC, it is what Apple has as its default
applications, so it is very simple to
learn the dependency manager architecture
also because we
need to have external dependencies
in our application and the poop can be that
these managers are used a lot
so I highly recommend learning about and
also native libraries and apis so
Apple It brings these libraries a lot,
for example you it will use some
native feature of the device such as
location, Bluetooth camera, it has all
this support already natively for
you to integrate into your application
and that's it guys, thank you very much for
everyone's attention It's an honor to be
here, I left the QR Code here for you
can access my social networks
But that's it