Okay.
Good morning, everyone.
Welcome to mobile application development comp 1601.
I've just started recording I've enabled live transcripts. So, I had some questions first of all wondering whether this class will be recorded. I'll say like at least part of every class will be recorded the parts where I'll be
will be more lecturing, I will try to record those and make those available to you, offline, I'll show you how to access all those things.
But, um,
but not all of class. So, It's still.
Let me just explain the course outline that will probably make it everything make more sense.
This is the main course page.
This is where based on the material for the class will be posted.
There's. Here's the outline which I'll go through shortly.
The other big thing for interaction the class is bright space, where you'll have where you know there'll be more things here for assignments and stuff, soon.
I there's this is the only announcement, you're going to see here, which is sign up for teams, and that's where all the personal interaction will happen, a synchronous.
This is the information on on how to join teams. If you haven't joined yet. If you're seeing this you're on the class zoom Good for you. So, and those links those other pages.
So I'm hoping, as anyone had any issues trying to sign up for teams.
The main reason I've seen people having trouble is, if you haven't accepted the cotton office 365 offer you haven't done that you can sign up.
But once you've done that you should you will have access to Office 365 stuff but Microsoft Office, and you can join teams.
I'm not going to show you the teams window here because, well, that but hopefully I'll be interacting with you there shortly.
In terms of format of this class. So it will be online. I'm actually not even Ottawa so I'm actually in Nashville, Tennessee. So, yeah, everything's online
question.
I think someone is not muted. So in this is a good thing be muted. If you're trying class I'm going to meet you all right now.
but if someone wants to do that. Yeah, do that because realize, you know whoever was not muted was just recorded. So,
but yes join. Please stay muted when you're on, you know when you join the zoom and unmute freely talk I'm, you know, or raise your hand.
That's perfectly fine.
Well, actually, I'm not sure if I see your hand. Raise so easily if I'm sharing the screen but certainly I will be checking the chat window, and you should go ahead and feel free to ask a question anytime in the chat window and zoom, or just, you know,
say something.
I don't mind being interrupted, most of the time but probably better to say I have a text message, and then I will ask you to maybe elaborate.
Okay so, and if so, what if you have trouble like joined the zoom just go ahead and join quietly.
Because, you know, we're probably potentially in the middle of things
in terms of grading.
So that's of course whatever wants to know. Oh, so I have one TA, and she'll be available.
I'll have her introduce herself on Friday, we have to figure out office hours. She can't come during Wednesday's class, but she can come on Friday so and, As you will see that will be useful.
Hi, And then classes, you know, here.
And then classes, you know, here. So in terms of the official course description.
Now, Introduction developing mobile application use the Mac OS Mac OS X platform mac os 10 platform off the top was clued the Objective C programming language development tools framework API's and the courts graphic system extensive practical experience
a development for Apple mobile devices iPhone includes experience learning activity. So this is the old description.
Technically, we will talk about this stuff, but really what the courses is we're going to introduce you to iOS and Android mobile application development and you'll be seeing how we do, how mobile application development is done, at least in the native
way and we'll talk about the difference between conventional desktop and server applications, and you're talking about how, how they run, how storage happens IO resource management security.
So a question. Will you have to have a Mac, or iOS device to do any of the code coding.
Very much so that is a requirement of this classes you need a Mac, you do not necessarily need an iOS device, because I won't require you to do anything on device although it's always nice to be able to run your stuff on a real device to to play with
it but you do need access to something running Mac OS. So you could use a hack and Tosh of some kind, you can use a cloud development environment as possible to run mac os 10 in the cloud, or let's not mac os 10 not just Mac OS.
You know, so, Um,
so I saw Yes, so I explained the format of the class in a second but yes, you do need a access to a Mac for this class, you technically only need it for the first half of the class but that's half the material and.
Yeah.
Intel Mac is definitely okay. In fact, I am teaching this course right now, from a late 2012 Mac Mini. So, this was a rather SPECT out Mac Mini, I have upgraded ram to 16 gigs and put an SSD in it, but it's an old Mac and in fact it's so old that I had
to do some tricks in order to get.
Big Sur mac os 11 running on it.
You need to be running mac os 11 or 12 because those are the things that run the latest x code.
If you're running a.
If you have a newer Mac, you know, a particular Apple silicon, everything should work fine.
There were some issues last year doing some Android development on Apple silicon, but still things were doable and I expect everything to be fine this year for using Apple silicon but, yeah, if I can do it on a 2012 machine, you can do a potential 2016
machine. The issue with your the machine you get potentially the slower, it is a, and that can be very annoying because Xcode is definitely a resource hog.
But, yeah, any machine within the law, any Mac within the last five years with at least eight gigs of RAM should be fine.
But it is possible to run Mac OS and the VM, it is against the license of Mac OS so I cannot give you official support for that if you choose to do that you can find ways to run Mac OS and a VM.
but I will leave that up to you.
So honestly if you're
so.
Okay, so, so, so in terms of how so communications, there's going to outweigh the grades, there's there's of course website, I will post a video of classes, that's supposed to to there.
And all that's basically the canonical place so you should be able to follow along on this, it's all there it's publicly accessible.
There's a 2021 run of this class you're welcome to look at it, I will be there will be definitely commonalities with it but I'll be changing things around there's nothing wrong with you, looking at the old version except that it may be confusing because
it will refer to things that I haven't necessary directly talked about in terms of grading.
The way I have this course graded is two things are easy to understand is there's a midterm and there's a final, the midterm is March 4. And so the idea of March 4, is that this is just after the break.
So you're going to have, you know, winter break. And then we have class on.
We have a review on the Wednesday class and Friday, you have the midterm.
And similarly, they'll be a final exam during the final exam period, those two together be worth 55% of your grade.
40% of your grade is in tutorials and assignments assignments there for assignments during the course of the term, you'll need to submit your.
Hold on a second. Let me let Rocio.
Come in.
Gross. So my, I have a dog and two cats and they may make appearances during during things. So, Roshi coming in, he may have them come say hi later.
Okay, Roshi let's see Can I see.
Okay, there we go. direction.
Are we doing Roshi.
You okay, this was an attention.
I think he might want to know he's not getting food right now.
Okay.
So,
so what was I talking about here so.
So you have.
So this year to 20% for assignments this for during the term, you turn them in they get graded. That's all fine.
That leaves 25% of the grade.
So 25% of the greatest in tutorials and participation cosmic attendance so basically the tutorials are, they'll be, you know, at least nine potentially tend tutorials over the semester.
These tutorials are exercises for you to do which are graded based on your attempts, basically your effort. We're not going to great to see you've done it in fact most of the grading I'm planning on doing the tutorials is essentially looking to see digit
do it. And we're planning on doing that Fridays in class. And if you aren't available Friday in class and if you don't, you know, have it done by then you have to basically get it done by the next class,
which will be the Wednesday and you will have to show it to a you know in the office hours of either me or the TA. So you have to go there and show that you know that you basically you, you put the time in.
So we'll do but hopefully most of you will be done by the end of class on Friday, if not now again, you may not understand everything in the tutorial.
path to understanding the material. Like when you get checked off the tutorial that doesn't mean you understand everything where you, I really make sure that you understand everything is in the assignments in the tutorials, it's really, or you're working
on it.
So, and then, you know, 5% is just for really showing up in class I'm going to have poles during the lecture to do things and that you're around the later part where we're going to more, I will match the plan on breaking you all up in the second half
class to have you all work together and help each other out because if you just having one big space is like whatever I'm perfectly happy to have you all meet in groups with people that you know each other.
But, um, but then I but initially I was assigned us kind of randomly, sir.
Okay, there's people coming on and so I won't be looking at teams during class.
But, and they're also they're just relating to that it's worth addressing, so I noticed I'm using teams and not Discord. That is a conscious decision.
And, and the basic reason is harassment.
And
the reason harassment matters is that
it can be basically anonymous on teams I only underscore on teams I know you have a Carlton identity associated with using teams.
I kept there are ways of doing identification and discord. The problem is you can always maintain some level of anonymity on discord by design. I think it's great for the purposes there but for.
Sometimes people have to leave the platform because they're getting harassed.
And I can't require teaching and that sort of environment.
So,
yeah so yeah exactly yeah so people and this has happened, people do that and this is also why we have noticed when you're trying to join the class zoom that you had to be logged in, and using some sort of account.
And in fact, you know, we've I've actually there as potentially issues normally you should have your, your name is, you know, when you access here and if you're not, maybe you should be using your their office hours on teams.
My office hours will probably be on zoom, I have an office our zoom I'll post.
But the idea is that teams is always there for asynchronous communication, we can use it for synchronous, and I'm perfectly fine doing video but I find teams video is.
It works okay, it's not a great zoom is, you know, generally much more reliable and polished.
I'll be posting the website on teams, I'm everything's in bright space.
All the links are there so you should be able to find everything on Bryce basically you found the zoom, you should be able to find everything else there.
There's a question about that. So, um, but yeah so I want you to. So, by the way, though Some of you I know have some constraints on participating in class, and up.
So don't i don't regard this participation as a thing, you can.
I always calculate a grading scheme. So I use multiple grading schemes at the end of class, and when I calculate grades, and I give you the highest This is the one I promise to use other ones will vary, but I will guarantee that I will do one where you
won't have participation. So if you don't want to come to class and just want to do the work and it's, and that's fine.
And what but along those lines I potentially will do one without even tutorials, but I will tell you this, these are the grades for most students this 25% is what brings up your grade, because my assignments are not easy the midterm and final will not
be easy. So, this is essentially my curve.
This is how I make sure that enough Pete enough of you do reasonably in the class is by giving you 25% of easy mark so essentially, if you are willing to spend the time, you can get 25% of your marks.
So, for tutorials, if you have some sort of timezone issue. We can have office hours at some later time where you can potentially come and in fact I'm, I'd be interested in, you know, message me or something if you've got some constraints in that I know
at least one student is taking this course from India. So that's a pretty big time difference.
So you can have at least one set of office hours that are kind of, you know, offset for that and I'm happy to, you know, give you credit food tutorials then, but 25% of the marks are easy marks, just put in the time and keep up with the class the rest
of it I mean you actually have to understand what you're doing.
So this is.
So, don't you, you don't you ignore these marks at your peril.
So, so course things are collaboration. So,
I expect you to work together on the tutorials.
I expect you to be collaborating.
I even expect you to be collaborating for the assignments that is perfectly allowed and encouraged and you are,
you know, you're and, but you just have to the key thing is, you should clearly acknowledge your collaboration I want to know who you are working with.
When you know when you collaborate because that way I can kind of understand like okay that groups working really well or not or something so
what should that look like it's just going to be just list the names. When you creditors. when you submit your assignment or whatever just you know list the names of whoever is there.
And then the.
So, but then of course the midterm and final exams will be, you know, open book open note.
Open Internet.
So, but, so the question is then how do I prevent collaboration I can't directly you're not supposed to.
And the way I will enforce that however is interviews, is that I will randomly and selectively interview people after their exams. Now, this is not punitive and in fact, when I interview for these things I often raise your grade.
But this is incentive to not cheat. Because if I interview you. And you cannot properly, you know, it's clear that your level of understanding does not reflect what was written there's clear that the written work is more than what you know.
I'll report you to the dean, and you'll fail the class or worse. So,
don't do that.
Yes, you may volunteer to be interviewed.
You may volunteer interviewed and I'm happy to do that because again, what I often do is find points go like, oh yeah we graded out a bit harshly I can give you some, you know, additional marks and your grades will never go down, unless I found that these
aren't your answers, but normally everyone's grades should be improved. Like if I find a grading error in your favor. I'm not going to take away marks.
So as I say they you know they're 10 to 15 minutes or so jelly but it's, you know, so, yeah, there'll be slots, so I'll basically post on teams, a sign up sheet in a spreadsheet and you put your name down, and if it turns out you can't make it to any
of those, I can potentially add slots at other times, you can collaborate on assignments so that means you could have a partner, but I will tell you the midterm and final are based on the assignments.
So you really want to make sure that you understand what you're doing.
So, and don't misrepresent it like if we find commonalities between assignments and you didn't mark you itself down as having collaborated you didn't list your names.
Then we're going to go like, that's unauthorized you know unacknowledged things and, you know, that's potential reportable but the interviews or after the exams have been graded.
So again I don't expect you a perfect memory but it's pretty clear whether it's your work or not when I interview with someone, it's like, that's very hard to fake when I start asking things like how did you get this answer what were you thinking and
stuff.
You know, you're gonna be able to that is a mentor and a final multiple choice questions. No, I do not believe in multiple choice questions.
He will be short answer. So,
yes, there will be short answer. So, yes, I will have basis for deciding on what the things are similar not.
Do I recommend that you collaborate.
No, I do not recommend you collaborate, I, I think it depends on you.
I will say that a little bit of collaboration can be very helpful when you because it helps you when you get stuck but too much collaboration is bad.
So, I suggest having buddies on but also again we're gonna have forums tutorials you submit assignments you shouldn't be posting too much but tutorials you can post whatever you want call it, I couldn't figure out how to do this like, that's like, and
that's where the real learning happens, you know, so you can share it freely there.
Oh yeah I'm completely fine Yes, I'm completely fine if you do the entire course all by yourself.
Does this course involve UX UI design and stuff. Um, so quite so in terms of material. So,
I'll get to that in a bit. Um, all that so there's no particular required textbook, I'm going to be linking to various online things.
One thing to note is that we're mostly going to be reading code, rather than writing code. So I'm going to suggest up, there's this book online book reading and modifying code.
You might, it's a very short little thing, I highly suggest you go download it and read it.
It's a cool little, it's a.
I'll just show you here is this. It's mostly about see but it's a, it's like someone little pages and these are like little things, but it shows, it tells you like. It gives you lots of good tips it's worth going through.
And yeah, you can use discord if you guys want to chat about things and stuff and Neil that's, you know, I'm, you know, again there but when I'm going to be interacting with you it's going to be on teams.
And that's where we're going to post things and I and the thing is if you post things on teams.
I can react to them and I can tell you Oh that's great or until you like, like if you all are having a discussion, I can jump into that discussion and give you something authoritative.
So, these versions of Xcode you should be able to run these versions, or you check them, I mean basically this or newer, I should only say or newer but this is kind of the minimum versions.
They should use
that recommend with practice questions.
You don't want to do so.
I'll explain how the material goes I practice questions is not the right way of thinking of this class. And of course, oh, then, then there's the. So, this is very important.
So of course there's the academic advisor if you've got issues and things you should, you know, they can help you with logistics, of course, as you all know about the academic advisor.
Dina is the main one she's great.
If you're a mentor.
Then there's various things about you know pregnancy disabilities sexual violence student activities, my basic thing I can summarize is that, life happens there stuff that goes on that's beyond this class, and my basic philosophy is I'm not going to be
a jerk about things. I'm going to try to be as accommodating as I can reasonably my basic thing is
you have to do the work. I can't, I can't excuse you for not doing the work I mean, if you can't do the work, Carlson's very good you can do a leave of absence you can withdraw, you know, come back and do it later, but ultimately if you're going to get
a good grade in this class you're going to have to have done the work. And if you can't do the work exactly on the schedule, that's where I can be flexible.
I can potentially even, you know, have you do passing out deadlines if it's.
I'll need you potentially be honest I may have posted solutions and you can't just look at them and I find if you look at the solutions, I can tell so you get some scrutiny there but, you know, stuff happens.
I will be accommodating as much as I reasonably can and you will be able to contact me best way to contact me if you've got something comes up is pm me on a personal message me on teams.
Don't you can email me but by email is going to be less often checked if you want in teams is going to get much more timely responses.
Yeah torture topia don't do that.
So the 5% participation mark.
So what is participation look like so. Oh, so let me. So now I think it's time to actually. So, I will be.
If something comes up, especially in this pandemic you know time, let me know.
And let's, we'll figure something out.
And
for for teams of questions, you can pm me.
If you have questions but I much prefer if you have questions that others might benefit from post to a channel.
Yeah, so it's really teams is like slack or discord to same thing.
Show. It's got channels and things and stuff so yeah, it's basically not that me. It's not as feature full is Discord.
It's a little more stark but it works.
What slack.
Is your discard 0.5.
Yeah.
Yeah. That's funny. Okay. So anyway, so you'll.
So, this is how I'll typically do a lot of my lectures, when I start talking is I'll use this for doing notes, because I think in text. So, that seems to work here so um.
So we talked about the. Okay,
so.
So, what does it mean so base participation.
You.
So, just need your participation. So,
don't just try and get if you if you start getting participation I might have to start getting negative right.
If you if your participation two tracks from the class.
You know that's good for nobody. So, try to contribute.
Alert teams. Okay so,
Would it be worthwhile me showing you teams a bit.
Okay, okay, I'll show you teams.
Okay, let me go I'll do that real quick here so.
Okay, so I'm going to first, I want to first login once I'm going to stop my share real quick stop.
I want to do.
Where do I stop sharing out there it is.
I'm just gonna log into teams because I don't want to be touching my password on the, on the video that's recorded.
Just one second here.
Okay, I've got the two factor authentication for my, My Account.
And
so let's share gun.
So, this is what teams looks like when you sign in.
Dismiss, so you can. So there is a teams, dedicated client, which works basically the same.
I can go click on my chat thing that's all my personal messages I'm not going to click on that now you can see here are some teams I'm on here is, you know, this is where it is there's channels, you know, look, this is the public channels like you can
see where people have been messaging here.
Good. So I helped out with posting where the zoom was like But where was the zoom it was right here.
But, um, so you joined this the way you join a teams is with a team code.
Oh, where's my chat window.
So, sorry.
There we go.
So one thing is teams, sometimes can be sometimes you have to refresh it sometimes it's updates are a little annoying.
But, yeah Oh, by the way. So one of the things that for the future.
If you have a side discussion you want to have with people like their stuff that's not directly relevant, like, I don't need to be reading it.
That's actually what the discussion channel is for.
It's good to use that to discuss things that are you know directly there so we don't have to do it or I maybe I should actually I'll probably I'll make a lecture, that's, you know, channel
lecture.
That will see
Now, one nice thing in teams I can also do is I can post, I can like post spreadsheets and stuff under files and things and so I can use that for sign up sheets and stuff.
Yeah, no, no, that there's not from the material, every album class material is going to be here, and teams is going to be for chatting about things. And I'm going to use bright space, basically for submitting things.
So that's where you're going to get your grades because that's where it's, you know, confidential.
Yeah, it's basically Yeah exactly. It's like discord but there which is also like slack is the same thing. So
recordings will be uploaded on the wiki.
So I'm sorry so that's that's all it is.
So, okay, I'm getting rid of that. And now let's go back to here.
So, what.
So, so participate here and so we'll plan on doing about
1690.
So, this is that they'll be the time for you all to work on tutorials in class, while everyone's here yeah yeah bright space is just for hitting and stuff.
So, the tutorials are things I post, you, you, I will want you to have a tutorial for this Friday, and basically for Friday, it's essentially just getting a basic application running.
So, I'm going to post thing after class and what I do have right now, however, is if you look here, this is the thing I would like to first start off with today is getting started with Xcode.
And actually, I'm going to walk through this.
You know today.
So, so for other classes we have separate tutorial slots and lecture slots here we just have a two hour slot twice a week. And so I do both in the same time.
So, yeah, so don't worry about having Xcode up and running, we're going to do that, I'm going to show you getting an Xcode running right now.
Well, not right now in a few minutes.
Well, so something to get. So, basically time to get things get you should try basically by Friday, Get your environment running.
That's your, that's your task, because if you don't have your environment running. Everything else is going to be really hard,
Basically, basically is not to talk to tutorials, basically tutorials are the tutorials are things I will post
here. So there's the section on tutorials. I will have a tutorial posted here, my tutorial for this week will be posted by Friday it's essentially.
I've actually posted later today.
So be working on things while on zoom we should be joining the meetings on the Mac device will be using.
I would recommend that. Yes, I would recommend doing that because then I can also you can share your screen, and then I can help you out like oh, like, oh yeah you're doing this, why don't you click here or something.
So, I would recommend that.
So, but let's see here so let's go back to here so.
So stepping back there was a question earlier about what kind of applications Why will you be able to make in this class.
So.
yeah. So, this is, this is why I want you to you I want you to understand. So, I want you to understand what's going on because if you go online.
You can find a million tutorials that will walk you through building, Android and iOS apps. If you want to just walk through those I mean, there's a whole bunch of them and they will do stuff.
But what they won't do is teach you what's really going on, I mean this is a computer science degree. So, this is not about just click here click here do that cut and paste put things together.
I want you to understand what's going on and why.
And so the purpose of the, of the programs we make and how have you already is that essentially every line.
So that's really, you know.
You know, you should understand what So will this involve peaceful and calm like recursion opportunity. I'll be straight up programming, definitely is part of this course that that's definitely there.
This is not really an algorithms oriented course and in fact the any algorithm is we
we use will be very simple, this is much more of a systems oriented course.
Really, you can. The course I'm, I've taught the most at Carlton is operating systems, you can think of this is almost like a I the way I teach it as more of a junior operating systems course.
And the reason I do this is very simple.
Oh.
this is really what I think is that you the platforms that you build on, you know, modern mobile applications mobile I mean they're just frequent complex.
They are big messes with, you know, of code with lots of functionality but lots of concepts. And so, I want you to have a mental model of those concepts.
So,
so I want you to build a mental model of what's going on here. It won't be perfect, but it will be enough for you to, to build in the future and your future courses and other things and.
And this is something that isn't taught in other courses so even if you would have more advanced training and in other courses I mean, this is kind of its own thing.
But I'd say the courses probably is closer to in terms of the mobile though it's I think it's closer to doing systems program like an iOS.
So, so this is all.
Yeah, they have this this is the key way of thinking of it and so along those lines. we're going to be working with two programming languages.
This is for iOS, and.
Yes, these notes will be posted.
Okay.
So apps developed an extra are not transferable to Android Studio know.
So, so using Android Studio and x code swift and Caitlyn now one thing to understand what my choice of languages here.
You could use most development still even today for Android is done in Java, and in Swift is an iOS is done in Objective C.
So why not teach the older languages.
Well first of all because new development meal,
new projects try to use these new languages and also they offer a lot of really nice afford and says, they're, they're much more friendly in many ways for developing, I mean, they're really designed to prevent wide classes of errors and.
And that and basically but it involves some interesting
complications. So, we will will discuss all that, you know, those little details but otherwise swift and Caitlyn are really not that different from any other language you've seen that's vaguely see like,
yes I will be definitely be talking about the basic concepts of the programming languages and showing that will be also learning other third party environments like unity, definitely not.
Definitely not.
that'd be
the game. The game dev. So question is will the volunteer note takers.
Those will be requested.
And though, if you have one through PMC, and I'm happy to if someone will volunteer, that's fine. No for this class, though, you're going to have lecture transcripts, you're going to have these are going to have these notes in the recordings, so she said
you're going to have plenty of stuff.
But yeah so that's so my focus is really you understanding kind of the platforms here. And then, you know, building up the, you know, so.
So,
this is the big question is what is the environment mobile apps running because.
So what services do you get and what are the constraints.
And this really matters, particularly for mobile apps.
Yeah.
Why do you think this particularly marriage for mobile apps, I'd say definitely separately from writing things for the desktop or no server and stuff.
What is, what do you think's different about mobile apps.
Any, any thoughts.
Memory availability okay so so.
so there's resource constraints you know in terms of RAM storage how much power you have, I'd say power is the most important one
because actually otherwise actually mobile devices are really as powerful as device no desktops from just a couple years ago or even closer but no matter what mobile devices are power constrained and that has huge implications, and how you do things.
Then there's of course no there's
no that's a different thing multi touch interfaces.
But.
So there's lots of restriction that will mobile apps can do because of the whole model of app stores. So instead of just downloading and you know.
Well there's there's yeah there's there's things like NFC. That's true. There's various API's and things but ultimately those connectivity things like NFC and API's are there.
So there's the stuff of using devices and there's kind of various you know functionality that you can do.
That's definitely there but there's not really in principle.
That doesn't make development very different, if that makes any sense it's just it's just stuff you interact with. It's another device, and give you a bit more information that's that's there but these things with the App Store changes how you develop.
It really, and the power constraints really changes how you write applications. Those two things, the multi touch interface, to some degree, but again, in principle, not necessarily but these things are changed a lot because desktop operating systems.
I think it really comes down to this desktop bonuses were designed really for developers first and user second me whether you're talking about old style MS DOS or Unix or other things that we'd that's really their development environments that you then
turn into user stuff and even things like Windows. While it has all this nice gooey and stuff for Mac OS why you know it's it's really an environment where you know you can just develop stuff, and run whatever mobile out, it's not, it's designed for users
first and part of that is making sure that users don't mess up the system.
And because of that, that means that developers have to go through more hoops in order to do things.
So that's where you're talking about you asking users for permission. That's part of this whole, who you know who's in control.
Power The phone is that all your web a power
really talked with, you know, basically running off a battery.
Because me yes laptops were off batteries but you normally, you know, the system isn't designed around and that's why traditionally laptops have had such crappy
performance, I mean well crappy battery life mean, we've gotten, because chips have gotten better it's not so much case.
Now, but honestly it's because a lot of mobile ideas developed for mobile have found their way into desktop operating systems in order to manage power usage.
So, when you develop them are an app for mobile.
You're going to be stepping into like how you program it will have to be power aware, in some way, just because of how the frameworks make you write code, you're forced to thinking about this, or fourth time to realize, you know when so you'll see how
this comes up, and you have to deal with security making sure your code gets signed and
it's it's annoying, but again its users first
developers, second.
So, anyway, I'm going to stop talking here. And what we're going to do now is start playing with Xcode.
And I will keep recording from my initial demo of x code. Let's see if I can get it running.
Because I've actually started off in the system I haven't actually gotten Xcode properly running on this computer.
I test it out.
What I did is I tested out Xcode, and it ran the projects fine but then, yeah, I had to do some setup here so we're going to will go through that now.
And, and see if I can get that all working.
Do you need to worry about government restrictions for
mobile
dots again doesn't really change the programming model. That's not really that's outside the scope of this class.
Certainly it can be an issue but that's, yeah, there's, you'll find that there's gonna be plenty of material in this class, you're not going to be there so if you get x code running.
This is something you should see here so like this.
And so, these are old things I know from last year that I can clear away easily.
But once you get Xcode you'll see something like this you can disable whether this runs or not. And then we can say, let's create a new Xcode project.
And when you do this you'll get this screen here, and we'll ask you something like this. Now I'm going to say first launch let's go ahead and go multi platform.
This is where you'd normally want to do this you go multi platform. And you go, app.
This is what you want to start here so you don't, you can choose iOS Mac OS watch TV OS.
I say start with multi platform start with app.
And then here. You're going to get something like this.
And so we're going to say.
Very call this.
And then he's going to say Add Account for team so I need to have something here so this is going to ask me to sign in with my Apple ID.
So I'm going to stop sharing my screen for a second while I log in there.
Because, you know.
it's going to do two factor authentication, what do I didn't do two factor authentication.
So now I have I have mine such.
So one thing is after you get to this place share my screen again.
So once you've added your account.
You should see something like this.
You should see there so I've added myself here and now one thing you want to do here is manage certificates,
like this if you have any things like this, you need to make sure you add a certificate here for Apple development. So again this is all so now I've made a certificate here for code signing.
And now I can go over here.
1601.
I do not need to include tests, not need to include core data.
Then I go here and that's going to say where am I going to put this.
I'm going to put this in documents. I'm going to put this in class and.
Yeah.
So now I've created a project here so where's my chat window.
If you have an existing Apple ID, you can certainly use it.
Oh yes you see get repository creation failed and show off their information supplied excellent
author.
day and then
now accept that. It's like these are just sort of things like this.
So again no so this is enabling source code control using gets good.
It's built into Xcode.
I can certainly show you more about it. Right now I'm not going to talk about it too much, but it is there.
And then, but once you've done this, you'll see now here's the here's Xcode running, should you use your existing Apple ID.
You can certainly use your existing Apple ID there's nothing. You don't have to make one specific for this class. I don't need to see it again.
Because the way you're gonna be spending code, you're not going to normally be submitting projects you're going to be showing, like the code you have because we had the code we're doing this class will all be pretty small.
But what you should be able to do at this point is, do this.
So I say do this hit play.
And then, as the build succeeded, and then it should pop up the simulator.
And that's going to boot up.
I can potentially talk about version control if you guys want me to the simulator skill set, here's a simulator, you may have to click on the thing to select it.
So then here so the simulator is actually a full, you know, implement to simulate an iPhone the iPhone touch iPod Touch.
It may take a while, so this is going to be fast if you're on an f1 Mac of this will all be faster.
Because they said this is like a nine year old Mac so it's going to take a second. So are we using swift Ui Ui kit, we're going to be doing things in Swift UI,
which is part of the reason why how do you do the multi platform one because multi platform defaults to swift UI.
We will be explaining the differences between swift UI and UI kit but the first thing you should know is swift UI is a modern way of doing it and UI kit is the old way of doing it.
And the new way has some limitations, but it's got lots of advantages.
And so it may take a second here after it boots, you know, waiting for it to actually start up. And if it doesn't actually show anything you should see hello world.
New bout a right here this is swift you I
didn't work. So if it doesn't click here, run it again.
We still thinking.
So I don't want Siri,
trying to remember how to do a multi touch things are there we go. Now, there it is. So it will stick it might take a while, especially when machines older to get here but eventually you should see hello world.
Can you do this part on an iPhone. Yes, definitely.
So yeah, so yeah so here is I thought now we. So, if you look here now use.
I bring this down a little bit here so if you go here and select, you'll see there's this big list of things here, if you connect a phone to your computer, it should show up here, and you should be able to choose it as a target.
And so when you hit build and run it should then deploy to your phone.
But notice, you probably want to have your, what you're going to want to have your phone, connected to the same Apple ID, as you're using an apex code.
So.
does this only work with your chat. Yes, this is definitely only with an Apple device.
So, I will lecture was showing you one thing. So one thing about this is as, you know, this is.
Oh, so everything I was is very proprietary but there is this thing called
the new step.
So the new step is.
This requires understanding the name is, so.
I actually just listened to a podcast on from the new step developers talking about how they're increasingly supporting iOS development. So, if anything, this is a way, you know, good news step is a way to run.
Mac application to port Mac applications to Windows and Linux.
But because of the nature of the foundations, it's also potentially also for iOS.
So, so there is hope of making things portable.
But, I would not try using that for this class.
So,
Yeah Android Studio Android Studio is compatible with Android. That's for developing Android things.
I would not mess with that right now because that's going to be another, you know, that's going to be, you know, you know in a month and a half so first thing get iOS, working, you'll have enough issues with it.
Once you do that then we'll switch over to Android
is an Android more similar to UI kit compared to swift UI. Yes, it is more similar to you.
Just a UI kit.
But there, there's a next generation thing for Android, which is, which is more like swift UI, we won't be going over in class but I will talk about it a bit. This course is about 5050 between the two. You know exactly but roughly that.
So I'm going to stop recording now, and I'm going to stick around here. And the idea is I want to be here to help you get x code working.
That is what I want you to do hopefully is, you know, if all of you can start getting x co working start showing me we can share screens and stuff and try to figure it out.
And I will also make some breakout rooms which you can go to and so you all can work with your friends and stuff, and try to figure things out.