Upgrading from iPhone 6 Plus to iPhone 7 Plus

iPhone 7 Plus

It’s been two long years since I got a new iPhone. It’s been a year since I bought a new cell phone (Nexus 6P). I’ve been bouncing back and forth between iOS and Android and now I’ll be committing to the Apple ecosystem – well mostly.

What’s new?

  • The antenna line on the back, below the camera is now wrapped along the top and to the side.
  • The home button is no longer a button. It is touch capacitive. I welcome this new feature, it’s been great for me. Not only has the fingerprint recognition improved, but it’s fast. You can set the feedback vibration in Settings > General > Home Button. You can set it from 1, 2, or 3. I have mine set to 3. The other settings were too “light” in the feedback.

    Home Button Taptic setting
    Home Button Taptic setting
  • There is no more headphone jack. Who cares? Great! It doesn’t affect me at all. I have a LG HBS 730 bluetooth headset. When I’m in the car, I use the bluetooth in the car for audio. If I’m riding my bike, I have a handlebar mount for the phone and I listen through speakers. But if I ever have to use the headphone jack, Apple has included and adapter that goes from Lightning Port to 3.5mm. I don’t see the big deal many people are making. The adapter itself is $9. If you lose it, it’s a $9 lesson. The phone also comes with the new Lightning Connector headphones. They cost the same as the old ones. If you don’t want to pay $29, wait for the fake ones to come out.
  • New color options: Apple Black and Jet Black. I got the Apple Black. I’ve always gotten the darker shade iPhones in the past. No more Space Grey, been waiting for the black color.
  • Storage size are doubled. They finally got rid of the 16GB base model and replaced it with 32GB. The 64GB is now 128GB and the 128GB is now 256GB. The price did increase by $20. I chose to get the 128GB model. My iPhone 6 Plus was 64GB and I didn’t get near capacity. I am considering ripping my old CDs once again and storing them on the phone just because I have a lot of room. Or set all my settings to high on the camera. After all, it can take 4K video at 30fps.
  • Speaking of the camera, the Plus model has two of them. One has a wide-angle lens and the other a telephoto. It can do 2x optical zoom and up to 10x digital zoom. I’ve taken some test shots indoors and can see a difference in quality. I am excited about the portrait mode feature where you can play with the depth of focus.
  • Though the 3D touch isn’t new, it is for me and those who upgraded from an iPhone 6 or 6 Plus. I have yet to fully use this feature nor is something I was looking forward to. Luckily, you are not forced to use it. It’s just there if you need it. I’m still triggering it when I try to long press so I can move app locations.
  • Stereo speakers. There is now speakers on both top and bottom. I do hear a difference when I’m riding my bike. It is a welcomed new feature, something I’m thankful for but not excited about.
  • Raise to wake. I know this came with iOS10 but it’s exclusive for the iPhone 6S or higher, and the iPhone SE. My Nexus 6P already does it and it’s great to have it on my iPhone.
  • Water resistant. Great, but I never had issues with getting my phone wet to a phone that it’s damaged.
  • New processor, the A10 Fusion. This was by far the new feature I was excited about. It’s supposed to be twice as fast as my old iPhone 6 Plus and so far I can feel the difference. It also improves battery life where it uses the low-powered cores when it can. I don’t notice the difference in terms of battery life, it feels the same. I don’t run into issues with battery though because I tend to charge my phone whenever I can. In the car, in the office, at home. I’ve pretty much programmed my habits to try to charge when I need to or when I can.

There are other new features but those are what stood out to me.

Some headaches

  • My preorder didn’t go as smooth as expected. The first order went through online but when I checked the following Monday, the order was empty – even though I got email confirmations and order numbers. They placed it again on Monday and assured me that it will get to me by launch day. It did.
  • iCloud back up was corrupted. I tried to restore from an iCloud back up and failed. I ended up having to install iTunes on my PC then doing a back up of my old iPhone. Then I restored by plugging in the iPhone 7 Plus to iTunes. It took longer than expected and even after that I’m noticing some weird behaviors. For instance, my Apple Pay on my Apple Watch isn’t in sync with the phone. My contacts are missing some records. Mainly new numbers I added. So it looks like the back up is incomplete even though it said it completed. Thankfully, I back up my photos through Google as well. Those are intact. Overall, iCloud behavior is weird. It keeps asking me to log in and it keeps notifying me of a new device even after it already has. This is one service that Apple definitely needs improvement on.
  • Two factor authentication was a bit confusing during the activation of my new iPhone. When logging in on the new phone to restore from iCloud, this was the requirement. (insert photo) It’s telling me to approve it on a device running iOS10 or a computer running macOS Sierra (at the time, it wasn’t released yet). The problem is, I don’t have any other device. I clicked on “I didn’t get the code” and it gave me the option to send it via SMS. At this point I wasn’t sure if my old phone was deactivated and the new phone activated. If the new phone was activated, I won’t be able to go to my home screen to access my iMessage app to read the code. I sent the request for SMS anyway to see what happened. The new phone received the SMS message and it automatically entered the code and moved on to the next screen. Good job Apple, but please make the instructions less confusing.

    iCloud two factor code
    iCloud two factor code
  • I really wasn’t planning on another Plus model. I didn’t like the size. But in order to get the “better” camera, you’d have to get the Plus model.


It doesn’t look much different than the previous two generation phones but does it matter? What were you expecting? Wings? Horns? It would’ve been great if they added wireless charging or get rid of the Lightning connector in favor of USB-C. Otherwise, I’m happy with the changes. What’s even great is many of the cell phone companies are offering up to $650 credit when you trade in your old iPhone 6 or newer. I was able to bring my device payment plan from $35+ to around $9 monthly. I doubt I would get that much for my old iPhone, plus the hassle of selling it. I have been enjoying it specially after I’ve convinced myself to stopped switching between Android and iOS. The latest version of iOS has many great features as well. If you can take advantage of the trade-in, go for it. If you are using an iPhone older than the 6S series, do it. Otherwise, it’s not much different from the 6S series unless the features I mentioned above intrigues you.

Developing on OSX Yosemite

I shared how I configured Windows 10 for my web development needs. In this post, I will share how I configured OSX Yosemite 10.10.5. I will be using Homebrew to install everything I need. This is a great package manager available on OSX that’s similar to apt-get on Debian and yum on Red Hat. So let’s get started.

Installing Homebrew

Make sure you are not using MAMP or something similar. It could affect the environment. Remove it before continuing. Ruby is used to install Homebrew. Ruby should already be installed by default on your Mac.

# install Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

# run update and upgrade
brew update
brew upgrade

# check installation
brew doctor

If you haven’t done any development on your Mac, it may ask you to install the command line developer tools. I would not only install but get Xcode as well just in case you’ll be using Xcode for other things. So click on the Get Xcode button to install both Xcode and the developer tools.

command line dev tools

This will open the App Store. Once installed, open XCode for the first time. It will ask you to agree to the terms and it will ask you to enter your password. If you don’t do this, it will ask you when you run your brew command until you do so. Afterwards, go back to terminal and press Return or run the process over. It will prompt you for your password. Hopefully you don’t have any errors when running brew doctor.

Installing PHP56

Homebrew does not have a default formula for PHP. A formula is what a repository is called in Homebrew. We need to add two.

brew tap homebrew/dupes
brew tap homebrew/php

With this, we can install PHP along with other options like PHP for Apache or Nginx. You can view the options with the following command.

brew options php56

I want to install PHP with the Mysql driver so I will use the following command. I’m not going to need a web server at the moment. PHP56 has a built-in one I can use.

brew install --without-apache --without-fpm --with-mysql php56

For some reason it wasn’t installing PHP56 so I had to run the install as follow.

brew install php56

If you read the long description after you install it, it explains more steps to set it up. I will also note it below.

Next we will update our $PATH so that we can use php command in terminal.

# bash
echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile

# allow for PHP CLI to use version from Homebrew
export PATH="$(brew --prefix homebrew/php/php56)/bin:$PATH"

. ~/.bash_profile

# very that php is running from /usrl/local/bin/php
which php

# check the version
php -v

If you don’t have a ~/.bash_profile, create one or use whatever file you’re using as the initialization file. It could be .bash_login or .bashrc.

Let’s set up a launch agent so that things will start automatically. We will create a folder in your Library folder called LaunchAgents. Then create symbolic links.

# create LaunchAgent folder
mkdir -p ~/Library/LaunchAgents

# create symbolic link for php
ln -sfv /usr/local/opt/php56/homebrew.mxcl.php56.plist ~/Library/LaunchAgents/

# autostart
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php56.plist

This is optional but if you’re going to develop using Laravel, then you will need mcrypt and composer.

# install mcrypt
brew install php56-mcrypt

# check/view modules and make sure mcrypt is there
php -m

# install composer
brew install composer

# check composer is installed
composer about

Install MySQL

Here are the commands to install MySQL using Homebrew.

# install mysql
brew install mysql

# set up autostart
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents/

# start the server
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

# run secure install, just follow the prompts

Install Node and NPM

It’s really easy to install node and npm via homebrew.

# install node and npm
brew install node

# check the version of node and npm, also checks to see if it's installed
node -v
npm -v

Install RVM for Ruby

But Ruby is already installed with OSX. Yes it is but sometimes Apple will release newer versions at a later time and you may not be able to use new features. So to make things as flexible as possible, we’ll use rvm to handle different versions of Ruby. You can also use rbenv but this article we’ll be install rvm.

# you can append ruby=[version#] as well if you know the version # ahead of time
curl -L https://get.rvm.io | bash -s stable --auto-dotfiles --autolibs=enable

It may give you a warning about .profile not existing (unless it already does) but if you’ve been using .bash_profile, make sure you add the contents of .profile into .bash_profile. It may look like this.

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session$

# don't forget to source it
source ~/.bash_profile

# install ruby using rvm install [version]
rvm install 2.2

# select version and use it if it didn't do it automatically
rvm use --default 2.2

# check version and which one - should be in your home directory inside the .rvm directory
ruby -v
which ruby

# check which gem, should be inside .rvm using same version as selected above
which gem

# update gem and install bundler
gem update
gem install bundler

# install jekyll if you will use it
gem install jekyll

That’s pretty much what I do to get an development environment going on OSX. Of course I didn’t include all the tools I use for deployment – that’s another post in the future. Why go through all the trouble when there’s MAMP or packaged environments? Well, I tried MAMP and purchased a pro license a few years back. I just didn’t have the same control as I do with this setup. Maybe it has changed now but this works for me. I also played with Vagrant. I don’t really like Virtualbox much. Hopefully this helps some of you. Please check outhttp://blog.frd.mn/install-nginx-php-fpm-mysql-and-phpmyadmin-on-os-x-mavericks-using-homebrew/. I got some of the commands off this post.