Apple’s Future

With WWDC fresh in our minds and its announcements more understood it seems like Apples future is a little more visible. They are setting themselves up to evolve for the next decades in computing.

ARM

Apple’s ARM team consistently makes the best phone and tablet chips every single year since their introduction. It’s also extended into their other product categories. HomePod, AirPods, Apple Watch so many of Apple’s new devices are built off of iOS and their ARM processors. Now whenever Apple introduces a new product category its kinda expected for it to have a new ARM processor with a fancy new letter declaration like: A or W.

Their ARM chips are so good that many in the tech community are expecting them to integrate these chips into their Mac’s. A 12 inch MacBook with the iPad Pro’s processor would transform it from a slow Mac to the lightest MacBook Pro ever. With Intel missing their roadmap and shipping iterations on old designs for a while. It seems like Apple is done relying on Intel and its just a matter of time till they part ways. They even try to not mention their name now during keynotes. Apple’s apps already run great on macOS since they design their hardware and software. It would be really interesting to see what they can do for the Mac if they control another crucial part of their hardware stack. I think were probably less than 2 years away from these first ARM based machines.

Software

With all of Apples hardware pushing forward to being even more integrated and working on ARM as opposed to x86 and Intel. SwiftUI picks up the baton and lets developers “learn once and apply everywhere” when it comes to making apps for its devices. Apple is trying to make cross platform development easier for its developers with SwiftUI and Catalyst. SwiftUI brings native Apple Watch apps for the first time and gives developers what they have been asking for. SwiftUI giving developers the ability to write apps natively no matter what Apple device you have is a big deal.

On the horizon

Tim Cook is not shy talking about his Augmented reality ambitions. ARKit and now Reality Composer have shown Apple’s serious about these new experiences. At some point in the near future Apple is going to have to put this effort into a hardware product. One that will be iOS based/ powered by ARM/ and developed with SwiftUI. It’s few and far between now when a new product category comes into existence. Even when Apple releases AR glasses it will be a few iterations before they hit the mainstream like the Apple Watch.

However, these AR glasses will be in a much better place than the Apple Watch was at launch. It’s been 4 years since the original Apple Watch was introduced and its just now gaining independent watch apps and a native framework. The AR glasses depending on when they are announced will likely have native apps on day one. They will have developers who have worked with ARKit apps for 3+ years. Developers will have an easier time supporting it since their new frameworks run on all of Apple’s hardware. The friction of writing apps for new hardware is gone. This move is probably one of the most important steps Apple has taken for its future. Developers will have less overhead supporting multiple devices with more time for new features. Users will get better apps and more updates as a result.

I think this is one of the greater implications of SwiftUI and Apples recent moves for its future. It tries to give customers a better experience if they own multiple devices with continuity and handoff. This is a walled garden approach and locks you into the echo system that’s definitely a factor. But now Apple is trying to give developers some continuity and a way to write their apps on any device they ship today in the past and definitely in the future.

WWDC 2019

WWDC is something I look forward to every year. I carve out time during work to try and stay the full week. Last year I had a blast getting to meet awesome developers and see some of my favorite podcast’s record live shows. This year I was eager to do the same thing but I challenged myself to also ship an app on the App Store. A goal I very happily hit even though it was super close to my deadline.

What makes WWDC so special is the people you meet while attending. I got to meet so many awesome developers and make new friends. Where I live there isn’t to many iOS developers so being surrounded by people who are developers like you is really motivating! Even on Sunday the day before the big keynote there was a mixer to give everyone in the community a chance to hang out.

Announcements

WWDC did not disappoint this year as Apple was eluding to developers having their minds blown with the new things on the horizon. Watching the keynote at ALTConf there didn’t seem to be a moment when the crowd wasn’t excited. From Sign in with Apple to Swift UI and project Catalyst. Apple has taken steps to show us more of the transitions that are about to occur and show us the future of developing for their devices and platforms. As a self taught Swift developer I am excited to be here as it happens and excited to learn these new technologies.

AltConf

AltConf is the fun conference that’s right next to WWDC and has a lot of really great talks and labs. Many WWDC attendees will attend AltConf as well, its a free event that anyone can come to. Some that I really enjoyed were talks about building accessibility into your apps/ diversity in tech/ and an ARKit lab. They have a pretty wide range of topics so there’s bound to be something you will like.

Live Shows

Podcasts are one of my favorite mediums there is a lot of shows I love and listen to every week. There are three big podcast live shows every year at WWDC: (ATP) Accidental Tech Podcast, The Talk Show with John Gruber, and Connected. Ive been lucky enough to attend all 3 and they are tons of fun. You get to hear great commentary about the new announcements and meet other people who love the same shows you listen too.

ATP
The Talk Show with John Gruber
Connected

WWDC end

With all the amazing announcements I cant wait to dive into all the sessions and learn more about what Apple announced. I try to stay away from coding and session videos when I’m at WWDC. I think its more important to be out and meeting new people. It’s only once a year you get the opportunity to meet others in this awesome community.

If you get the chance to go to WWDC go its an amazing event. You can attend AltConf and other free events so plane and hotel will be the bulk of the expense. But the people you meet make it all worth it and then some.

Vizard

Introducing Vizard! Vizard is my first iOS App that is now available on the App Store! This is an augmented reality app that uses the iPhone’s TrueDepth camera system to display 3D masks on a users face. It has 10 different masks in its first version and each one is unique from the last. This app requires the TrueDepth camera so only iOS devices with FaceID can run this App.

This app came from an idea that later turned into a simple app I made where I tried to create a version of the Laughing Man from Ghost of the Shell.  Seeing ARKit demo apps it reminded me of one of my favorite shows. Not long after I found myself playing with all kinds of shapes and tools in Xcode’s SceneKit editor. Screen Shot 2019-05-28 at 9.08.00 PM

I soon started experimenting with other things I could make from my interests. But I saw many limitations with only making things in the SceneKit editor. You only had generic shapes to work with and it was very limited in scope. The tricky thing with Augmented Reality Swift tutorials or anything to do with ARKit is the models they use. Most gloss over the 3D models you are gonna use and offer pre made ones. I started to ask myself how I can make whatever I wanted? I knew I would have to look into really complex programs like ZBrush or Blender but I wasn’t sure they’d be the right fit.

Then I thought to myself it would be nice if there was an iPad app that can let me make 3D models with the Apple Pencil. Oh boy did I find an app! It’s called Forger and its amazing. It lets you sculpt any 3D models you want almost like molding digital clay similar to ZBrush. After downloading Forger and playing with it for a few days I knew I found the app I was looking for and it opened me up to infinite possibilities.

image

Once I got the hang of Forger I can make my model than export it as an .obj file. Then airdrop that file to my Mac and into Xcode’s SceneKit editor so I can put it into my app.  It took me a minute but I found out how to deal with coloring different objects and getting them to look right in the SceneKit editor.

Screen Shot 2019-05-28 at 9.24.27 PM

iVBORw0KGgoAAAANSUhEUgAAC50AAAjwCAYAAAAKgq9xAAAACXBIWXMAAAsTAAALEwEAmpwYAAAM-2

Screen Shot 2019-05-28 at 9.25.09 PM

Once I established this workflow I set out to make a full app. This time I wanted to pull inspiration with shows and movies I liked but also try to make my own designs. Now I feel like I can create any model I want which is what I have wanted all along. I couldn’t have made this app without Forger and my iPad.

So if you enjoy those filters you see on instagram and snapchat and want some you can’t get anywhere else check out Vizard. You can save any photos you take or videos you make and upload them anywhere. If you have any requests or comments message me on Twitter.

VizardAppIconFinalRounded

App Store Features

IMG_4144

Back in 2015 Apple announced Phil Schiller would be in charge of the App Store. This change saw lots of great improvements. One example on the developer side was drastically shorter app review wait times. The most prominent on the consumer side was with the introduction of a newly revamped App Store for iOS. It was clear Phil was going to move the App Store forward. Just this past WWDC in San Jose Apple announced its plans to give the Mac App Store this same attention and focus.

Khoi Vinh’s App Store illustration article from May highlighted how amazing and overlooked the App Stores features are. This is one of the many changes that has happened that needs more attention as Kohi points out in his article. It’s made the App Store something you want to check more often now that there is curated editorial content.

Just today for example I saw a feature on the amazing Florence. To save it sadly the only thing I could do is take screen shot. Looking at the bottom of the article I saw a share button that does let me save it to Pocket. But doing so lets me jump back to this page in the App Store which is nice but it doesn’t work as I would like it to.

Then I remembered an acquisition announced recently that I largely ignored. Texture it’s a magazine subscription service that would charge a monthly fee for access to a wide variety of magazines every month. You can view these magazines and articles on iPad or iPhone.

Apple should be highlighting these app features more and giving me better tools to save them but what if they didn’t have to? How about if they made them monthly magazines ? I don’t think this is something they should charge for but I do think the magazine format could work for them. This magazine can be shown in Apple News, Texture, and maybe even the newly renamed Books app.

They can take all of the past content and give it more attention as well. If users can subscribe to these in a magazine format they never have to worry about saving them for later. It’ll be in one place to look at they would just need to download the issue they want. It will be great for developers as well letting them get more exposure even after their content is featured for the day or week. Someone just subscribing might go back and discover new apps they otherwise would have missed. Since they pledged to have this type of content for the Mac App Store I hope they can come up with a better way to showcase and preserve it. A monthly iOS and Mac OS app feature magazine would be amazing!

So Apple here is a free idea please give your amazing App Store editorial team’s content a much longer life.

Going to WWDC

IMG_4301

It’s already been almost a month since WWDC happened in San Jose this year but I’m still thinking about it. I decided earlier in the year that I wanted to go to meet developers and new people who cared as much as I do about Apple and their services. I have been learning Swift so it was also a great chance to see from ground zero what new changes were coming in the new versions of Apple’s platforms.

Last year Relay FM was hosting a meet up and I was able to go so it was my second time in the city.  The downtown area was really nice and had lots of different places to relax and grab some food. There was also motorized scooters everywhere in the city for people to zoom around on. Since the event is so huge there are lots of other conferences that also go on. ALT Conf was a free one I went to that was right next door to Apple’s main conference.

IMG_4335

This year Relay FM , ATP, and The Talk Show  were doing live shows. I was lucky enough to grab some tickets. Having been a fan of these podcasts for years it was surreal getting to see them recorded live with other fans.

IMG_4314
Accidental Tech Podcast (Marco, Casey, John)
IMG_4374
The Talk Show with John Gruber
IMG_4408
Connected (Stephen, Myke, Federico)

I also got to spend some time with hosts of The Menu Bar  one of my favorite new podcasts. They talk about the things in tech that no one else covers. Both Zach Cichy & Andrew J Clark were really nice and easy to talk to. Like many moments at WWDC it brings the best people together in one place. Meeting people IRL and getting a chance to build friendships is the highlight of WWDC.

IMG_4459
Apple Park Visitor Center

When I read that Apple Park will have a visitor center I was really excited to check it out. When I found out it also has a coffee shop inside there was no way I couldn’t go. I finally got my chance during WWDC and it was so much fun. Last year I got to visit One Infinite Loop and they have a small Apple store that sells cool gear that you can only get there and nowhere else.

Apple Park’s Visitor center was clearly designed to be a destination and had lots to do on your visit. It had all the hallmarks of what Apple has tried to put in their stores like a gigantic display for events. As well as other things exclusive to the visitor center like the coffee bar, AR demo area, and top balcony. They also had some cool shirts and exclusive gear like One Infinite Loop.

I feel lucky to have gone to WWDC and can’t wait to go again next year. I was able to meet so many awesome people. Everyone was friendly and enthusiastic we all were sharing our excitement from the announcements. If you have the opportunity to go to WWDC or are on the fence I would highly recommend going. You never know who you will meet or run into.

IMG_4383

Xcode on iPad

600x600bf

Swift Playgrounds was a big step for Apple and the iPad. It let them use their new programing language Swift to help future developers learn to code for its platforms. They championed hour of code setting up classes in Apple stores to teach kids how they can code. But as Paul Miller’s recent article points out there is a gap between learning and doing.

Xcode is what macOS and iOS developers use to write and develop software for Apple’s Platforms. While Swift Playgrounds is great for people who are learning Swift and programing fundamentals they will ultimately need to jump to the Mac and work with Xcode. This happened to myself, learning on my iPad with Swift Playgrounds only to abandon it for my Mac and more complicated iOS books to learn how to build an app from scratch.

I think this divide might be addressed soon by Apple based on some stories that have been published. When Swift Playgrounds came out I think many including myself thought that Xcode on iPad was inevitable. But we still haven’t seen it materialize yet, currently we have two different frameworks app developers use on Apples platforms. We have AppKit for macOS development and UIKit for iOS development. Xcode on iOS would need to address these two frameworks unless a new one is developed.

In December of last year Mark Gurman  broke a news story about an internal Apple project named “Marzipan”. Numerous reactions have been published since, but in Apple’s developer community its read as a potential universal framework for macOS and iOS. More recently Gurman published another story on how the Mac will begin to ditch intel in favor of custom ARM processors.

With these stories and WWDC around the corner in June I’ve been thinking about Xcode and the iPad again. If this year we see project Marzipan debut as a new framework for developers I think we might finally see Xcode on the iPad. If the Mac adopts these custom ARM chips as Gurman says then Apple has to have macOS run on it. Apple would have to adapt their apps including Xcode to run on these new chipsets. Personally I think Apple has already tested this in their labs and we will finally get to see it sooner rather than later.

If these things come to pass it makes sense why Xcode hasn’t been on iOS yet. It’s simpler to wait for marzipan to ship and get Xcode running on ARM perfectly before its released to developers publicly. If the future of computing is the iPad and iOS like Apple says it is they need to address current app development.  Having to develop iOS apps with the Mac must be a limitation of iOS that goes away. I think in the near future we are heading to you will be able to make an iOS app with the Mac and with iOS.

Once you have a universal framework and Macs that run on ARM just as iOS devices do then you start to get into new possibilities. Right now we have two main Apple OS’s with macOS and iOS. But these can all be the steps toward a unified operating system that runs on different form factors.   This is the theme of this weeks Connected podcast episode, where Myke, Frederico, and Stephen ponder what the Gurman article means.

It’s an insightful conversation and got me thinking of Xcode because it’s the missing puzzle on iOS. The iOS App Store wouldn’t be where it is today with ought Xcode on the Mac having iOS development being possible. Xcode on iOS running Swift and using Marzipan in parallel with the Mac seems like a reality we might be coming to soon. I think it will happen in the next two years, but as this WWDC is approaching I really hope we finally see Xcode on iPad this year.

Programing feels

 

IMG_7776

Programing is what I’ve been starting to dedicate some serious time to in recent months and I wanted to share some feels about it. It’s been an ambition of mine to learn Swift and one day be an iOS developer. I’m currently teaching myself Swift on Treehouse.com working through the iOS beginner course. I’m also working on the 100 days of code challenge.

I wanted to write something based on my experiences so far. As well as for others just starting out coding. The first step in my opinion is to find out what kind of developer you want to be. It doesn’t make sense to learn Swift an iOS language if you want to be an Android developer or vice versa. After you have a good idea of what kind of developer you want to be see what programing language or languages they use. Once you have that determined look at what resources you will use to learn that language and it must be tailored to you. If you learn with textbooks buy programing books on that language. If you are like me and need something different try websites like Treehouse or Codecademy. Make sure you find a resource that appeals to you. And don’t be afraid to change what resources you use to learn if somethings not working.

Stop research. Start coding!

More research can actually stop you from coding. In my experience its very easy to get into the idea of learning programing and never get out of the research stage. Or start to look into developer interviews on podcasts, blogs, and other mediums. There is an endless number of these and its easy to get lost in doing nothing but research. There is plenty of amazing stories to be told but everyone’s experience is personal. Chances are you can’t become a developer the same exact way as someone else. For me its been the idea of focus and what kind of developer do I want to be that has helped me to get started. Instead of asking how did they do this, have a mental state of mind(im going to figure out how to do this).

Set topics and concepts you want to get familiar with, but put rough deadlines on them. Dont rush through something just to hit a deadline you set only to look back and feel like you only got half of the knowledge. I think putting deadlines on learning programing concepts is a bad idea. Often times I can work on something for hours but I always ask myself did I feel like I learned something today? If you realize you put in 3 hours of practice and still don’t get it that’s OKAY! The quickest way to stop learning is to get discouraged because you put in tons of effort and don’t get it the first time. If that happens try doing another activity and coming back to it or taking the rest of the day off.

Consistency is essential, for me what I’ve done to keep myself consistently coding is to take the 100 days of code challenge. Take a portion of your day and set aside time to coding and working on your projects. Try to work on them for at least an hour but consistently working on your code and learning is what matters. With 100 days of code you code everyday no exceptions. I am on the second round of trying this and previously I made it to a little over 50 days coding consistently. I didn’t stop coding though I had dedicated at least an hour and a half to coding for at least 5 days a week.

Coding is kind of like math(you don’t need to be a mathematician). Its something that you need to be actively doing to understand and learn it. Treehouse has lots of great videos and code challenges. But I wouldn’t learn anything if I just watched the videos and didn’t write the code at the same time. That is why finding time to practice is so essential.

Plan your coding sessions. Everyone has different circumstances and not everyone even has their own computer but that’s okay. So make sure you can have a schedule of when you will code. If you can fit multiple coding sessions into one day that’s great. If you have to wake up early before work to code then make sure to wake up early and get some coffee to help you out. You got to just find some time that works for your schedule. After every coding session ask yourself did I feel like I learned today?

If you do these things I think it will be easier for you to get into programing. Introspection on how you learn is very important when learning anything not just programing.