[MUSIC] All right. Welcome to the iOS Application called hoBshare that we'll be building together over the next few lessons here. This is the overview, so we'll be taking a look at what's the point behind making this application. And we'll overview the app features so we all know what the app is expected to do. We'll take a high level look at the architecture of the application. See what's the goal, what will it be expected to do, and you'll have an assignment at the end of this series of videos for Week 4 here. And on each deck of slides for each lesson, I'll have this notes page that you can easily find it, and remind yourself of some of the important little facts that you'll need to know for implementing the hoBshare application on your own. And we'll take a look at what's the next thing in this little series on building the app so that you can know what video you're looking at maybe a little bit easier. Hopefully that helps you as well. Okay so what's the purpose? Why did we decide to put an iPhone application into this course? We wanted to make sure that you had a good opportunity to use a lot of the different language features that we've introduced over the last several lessons. And really see them come together, all the different types, like erase and dictionaries and ints and whatnot. And all the different other features we looked at, like rating methods or functions or enoms or struts, things like these. Also, see how class structure works together. So we talked about different types, like again, enoms, struts, clauses. We're going to be focusing on clauses in most of the time in our iOS or Mac OS applications. And make sure that we really understand the power of working with classes, since classes are able to inherit from other classes. And lastly we want you to be able to show that, yes, you do and prove to yourself, yes, I understand this concept of Swift. I understand some basic iOS programming concepts and patterns. And put an application together in Swift so that you can have that experience. Go a little bit thru the pain of struggling with working with Swift in a fully blown application, even though it's only an educational example application. It's fairly feature-rich. And we'll go take a look at what the app does in a little bit. But let's see what are the expected features of the application. So, the app is called hoBshare, and it allows you to pick your hobbies and share them with other users. So, you'll be able to simply create a user and sign in. Select some hobbies from a list that we'll provide you that you'll put in the application. And save which of those hobbies are my hobbies, right? So pick your hobbies and save them up to a database in the cloud. We'll be able to see the location of other users who share your hobby. And see the location on a map. So it's a very simple sign-up process. No personal information, just a user name and x,y lat and long coordinates for a location if you give the app the permission to use them. So as far as any privacy concerns, really there's no any personal information there. Your geoposition is totally anonymous. So let's go take a look at what the app actually looks like. So this is what hoBshare looks like on our home screen. And I asked my designer, SmallFish, to make a fun little set of icons and logos and whatnot to go with the app. So that, it kind of looks and feels like a fully fledged app that it's just almost ready to go into the app store. So this is called hoBshare and if we tap on it, we'll get to the Me scene. Which allows you to sign in. So if i type in a new username like Justin. Oops. Justin 2016, and hit submit. So now I'm signed in, My Hobbies went away which makes sense because I just created an account, I don't have any hobbies picked yet. And I can see I've previously given this app permission to use my phone's geopositioning location services. So we can see my current latitude and longitude on the screen, just as a little added bonus for you. We'll learn how to work with the CLO location class and API and also work with the map kit API. Okay, so now we have a user, we've got our position, and so I'm going to go pick some hobbies now. So I'll tap this edit button, and here's a list of hobbies that is quote, unquote baked into the apps. So we'll provide you some code in the form of a playground file, which you can copy and paste into your application when you're coding this at home. And that way we know that if you should not modify that list, then the server will know that all of those are valid possible hobbies for new students to work with. So you can tap any of the hobbies from the section at the top of the screen. And you'll notice that as I tap on them, the cells at the bottom of the screen in the My Hobbies section resize themself. And then if I try to pick more than 3 hobbies it will limit me, or if I try to pick the same hobby multiple times. So I have gadgets at the bottom. If I pick gadgets again, it will tell me I've already picked gadgets. All right, so now that I have some hobbies I can go over to the neighbors view by tapping on the neighbors button at the bottom of the screen. And you see this blue dot, it will find my current location. And if I tap on one of my hobbies, it will change the scope of the map so that I can see where I am and where other users that share that hobby are in relation to me. So I've chosen Apple as a hobby of mine, or something that I am interested in, and we see these red map pins come up. So if I tap on a map pin, I can see the username and a list of up to three hobbies that they have, and I see that James does have Apple in his list. And so just him. And so does Justin 1985, and here's Justin 1992, Justin 1996. So if you've created a user multiple times and probably you maybe often in the same location when you're working on this at home or wherever you are. So, if you tap on one map pin that represents the user, most likely yourself from one same location, then it will cycle through these different users at that location. Okay, so that's how the app looks, that's everything that it is, so let's go and take a look at how the office structured and we'll take a little bit deeper look at the architecture. [MUSIC]