Menu

One voice. Our voice. Cogent voice.

Category Archives: Apple

Apple Special Event 2017: A New Hope?

By Peng Xie

(Originally written on Sep 19, 2017)

Last week, the Cupertino company opened the door of its new campus to guests with a special event led by a touching and inspiring tribute to Steve Jobs in the theater named after him. During the 2-hour keynote, CEO Tim Cook along with other familiar faces presented the world a fleet of next-gen Apple devices that immediately captured headlines of all major tech websites and publications regardless the leaks and speculations happened before the event. So, what does this special event mean for Apple and tech industry? And more importantly, what does it mean for us, the consumers?

In my opinion, this special event is the most important events for Apple in years. When Steve Jobs introduced the original iPhone and App Store, Apple virtually changed the whole smartphone industry and turned itself from a computer and music player manufacture into a leader in mobile devices, software and retail industries. Since then, even though there were still good yearly updates and new(ish) product releases from Apple, I felt a trend of slowing down…. until this year’s special event.

(I’ll be discussing the new products from the special event in the order of how I remembered them and how important I think they are, so pardon me if it is different from the order of how they were introduced.)

Apple Watch Series 3

Starting with Apple Watch Series 3, while mostly left unchanged in term of design, more powerful internals and the addition of LTE are definitely welcoming improvements. This is nothing new since there are already other Android Wear devices that have LTE capability. And given that the new Apple Watch’s LTE will only work in the country where it is purchased, I think Apple will continue to try to win over customers with the refinement of the Apple Watches instead of features. The thing that interests me most in the LTE Apple Watches is actually the internal SIM card. Apple is an active player in pushing new SIM card standard and has used similar technology in previous iPad models. I’d like to see Apple put this technology in future devices and make it another industrial standard just like what Apple did with micro and nano SIM cards in previous iPhone models. Telecom companies would welcome this feature since it can reduce cost of making SIM cards while give better control on devices activated on their networks. However, for consumers, an internal SIM card may not be preferred by some. Using a local SIM card while traveling will no longer be as easy as swap out SIM cards. To utilize the full benefit of an internal SIM card, phone manufactures and service providers should really come up with ways to streamline the activation experience for customers.

Apple TV 4K

Next one is Apple TV 4K. While the device itself is more like a catching up with other streaming devices to some people (Personally, I love tvOS and I think Apple TV has huge potentials.), the real exciting news is that Apple is making quality 4K contents more accessible than ever. Years ago, a format war between Blu-ray and HD-DVD backed by multiple big companies and studios like Sony and Warner Bros. made HD contents widely available to general publics. But today, even with the popularity of 4K TVs and YouTube videos, we rarely see 4K movies sold online or in stores. With Apple upgrading the movies in iTunes Store to 4K without raising the price, I believe other retailers and content providers will soon step up their games in 4K, which will in turn benefit consumers greatly with not only increased availability but (hopefully) also reduced cost of contents and devices.

iPhone 8 and iPhone X

Last but not the least are the iPhones. The same “magic” formula used in iPhone 6 is still being used in iPhone 8/8 Plus while Apple “revolutionized” the smartphone design with iPhone X. Funny enough the stunning glass back design on both iPhone 8 and the 10-year anniversary iPhone X is actually a throwback to iPhone 4 instead of the original iPhone. But this I think it is mostly due to the newly added wireless charging feature. The iPhones are using an older Qi standard so I don’t think there’s much to discuss on that. What’s most important to me is the heart of the new iPhones, the A11 Bionic chip. In an interview after the event, Apple’s marketing chief Phil Schiller said Apple started development of A11 chip 3 years ago when A8 chip was shipped with iPhone 6. The focus on graphics and neural networks processing in the design of A11 Bionic chip can give us a glimpse into Apple’s ambitions. Along with the introduction of ARKit and Core ML in iOS 11, Apple is obviously venturing into a future of augment reality and machine learning.

This is more or less a trend in the industry, but not all companies have the expertise across design, manufacturing and software development like Apple does. The Verge reported that the “notch” on iPhone X is as complex as a Microsoft Kinect. Packing all those components in an area that small is simply amazing. Paired with the powerful A11 chip, it will surely give iPhone X the ability to raise the bar for facial recognition technology. In addition, FaceID, AR and other processes will be great help in training Apple’s machine learning algorithm. A more intelligent device can significantly improve user experience with the help of Core ML framework.

Aside from all the praises, there are concerns over the brand new iPhone X. The “notch” design is not loved by all. The security of FaceID is yet to be tested by the public. And unsurprisingly there are privacy concerns regarding to the FaceID feature. To me, those are all valid concerns and healthy discussions. Not only Apple, but all manufactures and consumers should know what they’re dealing with and getting into. I’d like to see the big players like Apple, Google and Samsung work together to come up with an industrial standard to ensure the devices meet minimum security and privacy requirements.

Still a leader?

I believe the answer is positive. With a 50% sales growth, Apple replaced Rolex as the biggest watchmaker in the world. And the tech giant is now championing for a future of 4K contents. Even though iPhone 8/8 Plus mostly remain unchanged and iPhone X’s minimum bezel design is not a first in the industry, Apple will still be able to influence the design language for future smartphones. When we look back in a future of augment reality and devices with outstanding learning capabilities, I think we would all agree that this year’s Apple Special Event is as significant as the one where Steve Jobs introduced us to a legendary device called iPhone.

WWDC 17: Why am I excited as a developer?

It’s been a week since WWDC and I finally got time to write this blog post to express my excitement as an iOS developer. I won’t be talking about the keynote, since it’s pretty much the same every year. Instead, I’ll be focusing on the real deal, WWDC 2017 Platforms State of the Union.

For the non-iOS-developer readers, Platforms State of the Union is a session in WWDC that gives attendees a more technical overview of what’s coming to Apple’s platforms, as its name suggests. Just like previous years, Apple made some really big announcements to its developer community. Let’s see some of my personal favorites.

Xcode 9 Source Editor

As an iOS developer, I use Xcode everyday, which sometimes can be a pain. Xcode’s performance and features are not that strong comparing to some of the competitors. This year, Apple introduced one of the most welcoming changes to Xcode in my opinion – they have re-written the whole source editor from ground up in Swift! The result? 3x faster file opening seed, 60fps scrolling and up to 50x faster jump-to-line action. On top of that, they also implemented an integrated markdown editor, improved coding issue presentation and tokenized editing. What’s even better? A brand new refactoring engine and workflow that is powered by an open-source transformation engine. IntelliJ users may not be that impressed with these improvements. But to me, the all new source editor will give me a huge boost in productivity. I can’t wait for it to come out of beta… (Rule of thumb, don’t use beta Apple softwares on production development works.)

Swift 4

Not surprisingly Swift 4 will be there with Xcode 9. Apple has vastly improved one of the most widely used classes in Swift, String class. In Swift 4, String is now a range-replaceable bi-directional connection, meaning it behaves and can be used like an array of characters now without any sort of conversions. Thanks to the underlying improvements, String now provides 2.5x-3.5x faster processing depend on the language it’s in. Another welcoming news is the introduction of “codable” type. The new type will be synthesized by compiler and has the ability to perform 100% type-safe JSON encode/decode with only one line of code. Apple also made it easier to adopt Swift 4 in Xcode 9. The compiler now supports both Swift 3.2 and 4.0 and allows developer to mix-and-match 3.2 and 4.0 targets. All these improvements makes Xcode 40% faster building large mix-and-match Swift/Objective-C projects. Moreover, building projects using multiple Whole Module Optimization targets is now 2x faster!

iOS 11

One of the biggest announcements in WWDC 17 is iOS 11. For users, iOS 11 blurs the line between a desktop and a mobile OS, which will finally make iPad Pro a viable productivity tool. For developers, this means new APIs to play with. Starting with the new Drag-and-Drop feature, Apple did a phenomenal job making it easier to integrate in apps. It’s automatic for text and web content, and has delegate protocols for customization similar to other iOS APIs. With its cross-process, system-wide multi-touch support and built-in data security, I’m sure developers will start to provide this new feature in their apps to users as soon as iOS 11 becomes available.

Good news for everyone

Along with Xcode 9, Swift 4 and iOS 11, Apple also introduced CoreML for machine learning, Metal2 graphic engine and ARKit for virtual reality. These are only a few that caught my eyes. I am really excited to learn more about CoreML and hopefully can put it to use in one of our apps someday. I truly think Apple has given us developers really good tools and platforms to provide users best features and experiences. This is good news to developers as well as users. A better Apple will surely push its competitors to step up their game, which is something I really like to see. Whether or not you’re a developer or iOS/macOS user, you should be excited too. As consumers, we will always benefit from the competitions.

What is Markdown?

Markdown is a lightweight markup language that is natural to write and easy to convert to rich text and other formats such as HTML or PDF. Because of its simplicity and portability, it has become the go-to option for developers to document their codes and README files. Find a random repository on GitHub, you’re likely to see at least one file in it written in Markdown. In addition to developer communities, Markdown is also supported in a variety of other places such as blogs and forums. Even some instant messaging apps now have Markdown-inspired formatting features.

Markdown in GitHub

As one of the most popular places where people use Markdown extensively, GitHub actually has its own version of Markdown syntax which is called GitHub Flavored Markdown (GFM for short). Being a Git hosting service, GitHub uses GFM to provide users additional features such as the ability to reference issues, pull requests and SHA-1 hashes of commits.

Markdown in WordPress

WordPress supports Markdown as well but you have to enable it first in your blogs settings. In Settings under Configure section of the side menu, you can turn on Markdown support for composing in the Writing tab and for comments in the Discussion tab. After saving the settings, you can start to write your new blog posts in WordPress using Markdown. As a matter of fact, this whole blog post is written in Markdown!

Time to play?

Now that you know more about Markdown, let’s see some examples!

Codes

You can either put your code inline like this or add a code block in your file like what I’m going to show you below.

This is a code block!
The syntax for inline code is to wrap your code inside a pair of `.
To use a code block, simply put ``` at the lines above and below your code block.

Also, checkout this awesome post on Ray Wenderlich for some recommendations on Markdown editors for MacOS.

Bonus

Hey, thanks for reading this blog post! Here’s a bonus section for you! Do you know that you can make presentation slides using Markdown as well? I found an interesting presentation writer on GitHub called Marp. Just separate your slides with --- between empty lines and you can literally write a whole presentation using Markdown in a single file!

I am not talking to Chris. There is no Chris in this story. And this is not a story based on actual occurrences. Although it is possible that I am talking to a eleven year old like Chris. Or a Twelve year old. Perhaps even to a twenty five year old. As a matter of fact, I could be talking to anyone with a smartphone. So, once again, to be clear, I am NOT talking to Chris.

That brings me to the story.

“New model of iPhone releases tomorrow”, I yell.
“I have seen lots of those. I mean, lots of such new smartphone model releases..”, you say.

“Oh”, I nod and start thinking to myself. We now have a generation of 9-10 year olds who have grown up with smartphones and know nothing different. They don’t get impressed with new models getting released every other month. I reckon one has to be old to appreciate such “events”. Or should have at least lived during the dark age, aka the pre-smartphone age to be excited about such events.

“But this one is a new iPhone release. The mother of all such events. They don’t happen every year. Ok. I’ll correct myself. They do happen once a year..Or twice a year. But still a rare occurrence given it is from Apple”, I say in a fading voice. I know I am losing my battle to engage you and by now, I have given any hope I may have had to trigger a drop of excitement about the big event scheduled to happen on Sep 7.

A grown up adult like me does things with an iPhone, in a way that is completely different from any teenager or for the story’s sake let us say, from a eleven year old. There is no novelty factor anymore, but there is a pride of ownership. I have seen this device – this iPhone 6 that I am holding in my hand, the one I am staring at every 2 seconds, as I anxiously wait for my friends’ reaction to a wisecrack that I just spluttered out in a college WhatsApp group..yes, I have seen this device evolve from a flip phone, when such devices used to weigh a couple of pounds at the minimum. But the eleven year old doesn’t know that because the eleven year old has never held a flip phone in his/her hands and has never experienced the joy of carrying a fanny pack sort of a belt clip to hold that heavy phone as he/she walked around. That’s when it dawns on me. It’s sort of like Television for my generation.

It’s Sep 6, 2016. The day before. I don’t have any Pre-Apple event rituals that I follow. None that I recollect anyways. But I wonder if I should indulge in some. Start a tradition perhaps. But why? To what end?

We all are just communicating. What primarily used to be voice based communication that these phones used to enable, has now transformed into text based communication. Voice based communication is almost secondary now.

“Apparently it’s going to have better cameras”, I holler as the noise of a passing vehicle drowns my voice.
“What?”, you look at me puzzled.
“Well of course, You have seen that before…Nothing new I suppose”.

I invite you to join me on my side of the table. The burly man in white, who I sense by his impatient body language, has been waiting for a seat for a while. Or he has a severe case of growling stomach. Either way, he quickly pulls the chair you were sitting on, away from the table to move towards another table. I notice an iPhone 6 plus peeking out of his sweaty palm. He rests himself on the chair with some physical challenge, the act only exacerbated by his continuous indulgence on the smartphone . I don’t think he took his eye off even for a second.

Where was I?

“They say iPhone 7 may not be a huge jump from iPhone 6. But who knows? I am going to get one no matter what. They are also speculating that Apple will drop a new Apple Watch along a new MacBookPro..”
“Oh..”.

The burly man is still busy staring at his phone. The waiter has to tap on his shoulders to get his attention. I think I caught a glimpse of the yelp page of the restaurant open on his phone.

“I think he is looking at the reviews..”
“What..? What did you say?”, you, completely unaware of what is going on around.

That’s when I notice that you have been staring into your smartphone as well, all this while. And I hear you whisper something.

“What did you say?”, I ask gently.
“Oh..Nothing. Apple has been playing the catch up game for a while now..”.
“You mean, they don’t lead smartphone innovation anymore?”.
“Of course not. Which world do you live in?”.
“I guess the same as you. Ha ha..By the way, I have never used any other kind of smartphones. Been an iPhone user all my smartphone life..”.

You lift your face and look at me. May be for the first time during this entire conversation, I see you making eye contact with me. I see you smile but with a bit of an annoyance.

“I can never understand you Apple fanatics..”, you say with a bit of disdain.
“Hey, I am no fan of anything. I just like iPhone..”.

Through the corner of my eyes, I could see the man at the next table still staring at his phone as he quite skillfully cleans up a bowl of soup. Broccoli Cheddar with bacon bits. The restaurant is known for this soup. Yelp seems to have played a role in his decision making.

“So what is your favorite smartphone?”, I decide to become more open about others’ smartphone choices.
“I really don’t have any..”.
“But..but..you are very judgmental about iPhone users..”.
“That means nothing. I mean I find this whole excitement silly..”.
“Hmm, I don’t know. You are right. It’s a bit silly. But I can probably explain..”
“I am sure you can. Do you see any other smartphone releases preceded by so much press, media coverage and fan frenzy?.”.
“Exactly my point. You don’t and that’s why I was trying to get you excited..You seem to have an absolute equanimity as far as smartphones go…”.

I see you break a smile. And you once again make an eye contact with me. This time a bit deeper. A bit stronger connection. As if you have made a point.

The other day I came across a bug when I tried to use Key-Value Observing to observe the change of a property in some not-so-modern Objective-C class. The observer was never notified when the property’s value changed. It took me a long time to figure out what was wrong and I just want to share my findings, so you don’t have to be upset should you ever run into a similar situation.

It all started with a simple “@synthesize” statement.

Some background first. In “Adopting Modern Objective-C” document, Apple recommends using properties instead of instance variables (or iVars) in “as many places as possible”. One of the benefits listed is “Auto-synthesized getters and setters”. If you still remember all the “@synthesize” statements in stone-age of Objective-C, I believe you will just love auto-synthesizing feature in modern Objective-C as much as I do. (Almost) No more “@synthesize”! Isn’t that sweet?

Even though synthesizing is no longer required (most of the cases, and usually not even recommended), you can still use it to synthesize a property with a backing iVar (Compiler will create an iVar with the same name of the property if there isn’t one created by developer.) and custom setter and getter. However, if you don’t make your setter KVO-compliant or just simply ignore setter and change backing iVar’s value directly, KVO will obviously fail to observe the change in property’s value.

A well-designed custom setter or a setter created by auto-synthesizing calls “willChangeValueForKey:” and “didChangeValueForKey:” methods at appropriate moments to send observer notifications so that observers that implements KVO methods know when a property is changed. If new value is directly assigned to a backing iVar, the setter is never called and hence there will be no notification sent for KVO. Not only will your own KVO code not work, any framework you may have used in your project that depends on KVO will also not work.

You can find a demo project here. In the demo, if a property’s value is modified without using the accessor (setter in this case), KVO won’t be able to observe the change.

Enhanced Spotlight: I actually didn’t know you couldn’t check weather and search things with your own words with Spotlight in Yosemite.

Mail App: I’m gonna write emails to all the people I know with all the tabs I can have in new Mail app’s compose window and still ignore emails from Phil Schiller because I can search for all emails I ignored from Phil!

Metal for Mac: RIP Open GL… While the PC gamers are playing GTA5 with awesome graphic, Mac gamers are still stuck with games like vegetables vs zombies. Let’s see if these big game companies can convince PC gamers to buy Macs.

Have I mentioned that El Capitan is faster than Yosemite?

iOS 9 and WatchOS 2

Siri now has a new animated interface. I wonder what will you see if you look at it with red-blue 3D glasses…

Siri can also do way more than it (she?) could before based on its (her?) soundings.

“🎵It sees you when you’re sleeping… It knows when you’re awake…🎵”

Like in OS X, Spotlight on iOS has received a new interface and can now look into your apps for search results.

Apple Pay now works at more places than ever! And apparently Apple and Google seem to have reached some agreement to switch the names of their payment app. Yes, I’m looking at you, Android Pay and Apple Wallet.

Happy drawing in the new Notes app!

Maps app can now tell us which bus/train to take to go to places!

Apple now lets you choose what news you wanna read in its new News app, as long as you’re in US, Australia or UK.

People have been asking for an “iPad Pro” for some time now. Apple’s answer to it is a new QuickType keyboard with shortcuts plus touchpad capability and a more powerful multitasking feature (Samsung, get your lawyers ready!).

You’ll be able to use the awesome Picture in Picture and Split View feature if you have the latest iPad Air 2.

Swift 2 will be open source later this year, available for iOS, OS X and Linux. I feel sorry for Windows because it won’t get all the wonderful new features comes with Swift 2.

It seems like WatchOS 2 can finally do what it suppose to do a long time ago. Apple has finally given access to normal frameworks and features like animation & layout for Apple Watch.

Everything about Music

For $9.99 a month, you get another Spotify alternative. That’s it.

And the crazy developers at Apple are developing an Apple Music app for Android as well!

Overall impression
I am not happy about this keynote and it’s not because there’s no new Apple TV or other new toys. WWDC is a developer conference and it should focus on new operating systems and SDKs, not music. Unlike previous years’ WWDC, Apple rushed through announcements and demos and spent what seems like forever for their new music streaming service. I understand it’s important business for Apple but they really should have spent more time talking about WatchOS 2 and Swift 2.

The average American spends 162 minutes on their mobile device a day and 101 minutes in his/her car. The likelihood of these times overlapping is ever increasing as mobile devices become more and more integrated with our lives. The need to stay in constant contact, get directions or find the nearest place to get a burger becomes an everyday need.

It is no surprise that the most prevalent phone operating systems want to make life easier by offering features in your car, but it is also no surprise that car manufacturers want to bring these features direct to you from your dealer. Both Apple and Android announced this year that they will be offering in car systems straight from the OEMs for integration to their devices.

Apple CarPlay

Apple has introduced CarPlay, a feature rich in dash information system for the OEM and Aftermarket that integrates with your iPhone 5/5C/5S/6/6 Plus. CarPlay extends many of the functions that you most commonly use while in your car to the cars in dash head unit making it easier to keep your focus on the road ahead.

CarPlay attempts to keep the road your main focus with putting controls within reach. Siri handles all your voice commands, allowing you to answer calls, send messages, ask for directions or request your favorite song. If you are more of a button pusher, CarPlay also allows for all of these controls to be accessed through on screen menus or operation through your in cars specific controls.

Apple knows that while driving you have enough to worry about so CarPlay brings you everything you need without having to search for it. Apple Maps is there to give you direction, traffic to make sure you get to your destination on time. Calling is there to make sure you never miss making that important call or taking one. In car Messaging is there to help you response to those texts or emails that just can’t wait and with Siri you never have to take your eyes off the road to respond. What would a car be without your favorite tunes playing over the radio, iTunes and iTunes Radio and there to make sure you never have to search the radio to find the music you want when you want it.

Apple also knows that your mobile device is personal and it’s not just used for placing calls and getting directions so CarPlay currently supports some of the popular iPhone apps such as Spotify, iHeartRadio, Podcast, Beats Music, MLB at bat, and CBS Radio to name a few with more to come.

CarPlay will be available in the aftermarket from Alpine and Pioneer, in addition some OEMs that have already signed up to offer this right from your dealer such as Ford, GM, Chrysler, Toyota and BMW to name a few. You will soon be able to take full advantage of CarPlay in your car old or new.

Android Auto

Android has introduced Android Auto an in dash information system coming for OEMs that integrates with your Android device running 4.2 or higher. Android Auto extends most of your mobile devices functions to the in dash screen keeping your hands on the wheel and eyes on the road.

Android Auto keeps you focused using voice and on screen in dash controls. Using hot words like “Hey Google” all your voice commands, such as answering calls, send messages, asking for directions or requesting your favorite song can be done. Similarly you can access all these functions through simple and quick interactions on the in dash display.

Android wants your car to become a natural extension of your phone, so Andorid Auto brings you everything you need and nothing you don’t. Google Maps is there to give you the reach driving and turn by turn navigation with lane guidance and traffic information you come to expect. Calling and Messaging are there too, so you never miss the contact when you need to make it most. Want music? Just ask Google and it will be served up to you right through your in car audio.

Android just like Apple knows that your mobile device is personal and your favorite apps can’t be ignored so Android Auto currently supports some of the best Android apps such as Spotify, iHeartRadio, Pocketcast, MLB at bat, and Pandora, to name a few, with more to come.

Android will be available for OEMs with no word on Aftermarket as of yet, but some OEMs that have already signed up to offer this right from your dealer such as Ford, GM, Chrysler, Volkswagen, Honda and Bentley, to name a few.

Your Choice Your Car!

The choice is yours! In rare form Apple and Android are offering very comparable products, the screens and interface are close in look and feel. The apps and functions of both products are almost the same and even the car manufacturers overlap between the two products with the only edge going to Apple for supporting the Aftermarket but with Google’s open sourced approach to software I would think this is only a matter of time before we see an Android based head unit on the market.

The only questions that really remains is how quickly will we see cars equipped with this great technology and which will you choose? Soon your choices will not only include what color paint or if you want leather, but what mobile device you use.