Apple will release HomePod on 9th February, pre-orders start this Friday

Apple will release HomePod on 9th February, 2018. The preorders will start this Friday, January 26th. The smart speaker will first go on sale in USA, UK and Australia. It’ll then arrive in France and Germany sometimes in Spring.

HomePod is Apple’s first smart speaker to rival Amazon’s Echo devices and Google Home. HomePod was initially planned to be released in December of 2017 during holiday season. However, it was delayed till now.

HomePod is priced at $349 and has always-on voice assistant – Siri. It can also be used to control all the HomeKit or smart devices connected around the house. Despite delaying the release, the HomePod seems to keep all the features announced* back in WWDC 2017. At $349, Apple is playing a pretty different game as compared to Google or Amazon with their tiny and cheap speakers.

The speaker comes in two colors – White and Space Grey.

Will you be buying HomePod? Leave your thoughts in the comments below.

UPDATE: *HomePod will not have Multi-room audio. Will come later this year with software update.

Dynamically change parent UIView’s height when TextView height changes

I have been working on a new app for the last few weeks and yesterday I ran into a small problem. I have a UITextView in a UIView container and I want the UITextView’s height to dynamically change as the user type in it. However, I also want the parent container’s height to increase as well. I broke this problem down in two sections:

  1. Dynamically change UITextView’s height
  2. Dynamically change container’s height.

First let’s start with UITextView’s height. There are plenty of ways you can do this, I decided to use UITextViewDelegate and it’s function ‘TextViewDidChange()’ to calculate the height of the textview. This function is called every time user types in the textview. Since I am not using storyboards for this project I have set all the constraints programmatically. Obviously for a certain element to increase it’s height dynamically you need to keep any one side of the element constraint-free.