Thứ Sáu, 13 tháng 2, 2015

You’ll Never Guess How This New Case Transforms Your iPad’s Keyboard

phorm

Today, Tactus Technology announced their first product, Phorm, a case that transforms your iPad’s screen into a tactile keyboard. The case is incredibly interesting as it uses microfluidic technology to move small of water to simulate a tactile button on the display of your device. Phorm is unique from its competitors as it can form and remove these bumps with the slide of a lever on the back, allowing users to keep the case on while doing non typing activities.

Macrumors notes that there is a small amount of water used in the case and in the event of a drop it will not damage the device. According to Tactus

“In internal and third-party testing with people aged 19-70 with a wide range of hand sizes, 70 percent preferred the Tactus solution to a touchscreen.”

Right now the product only works with the iPad Mini. Pre orders are being taken on the Phorm website and will cost $104 including shipping and are expected to deliver this summer.

For more info watch the promo video

and TechCrunch’s first look

Source : jailbreaknation[dot]com
post from sitemap

Thứ Năm, 12 tháng 2, 2015

Get Mass Effect: Infiltrator’ FREE This Month

mass

Every Month IGN gives away a paid game for free over at their site. For February 2015, they are giving away EA’s popular hit Mass Effect Infiltrator. Currently the app is priced at $4.99 so make sure to get a code now before the deal goes away.

Steps

1. Go to IGN’s Website

freegame

2. Click on the label that says “Get My Free Game”

3. The website will dispense a promo code that works like a gift card. On your iDevice open the App Store, tap “featured”, scroll down and click redeem.

itunesss

4. The app will be available to download for free on your account.

Source : jailbreaknation[dot]com
post from sitemap

Thứ Tư, 11 tháng 2, 2015

Apple Stops Signing iOS 8.1.2 Firmware, Downgrade No Longer Possible

Recently, Apple stopped signing iOS 8.1.2 the last firmware that was exploited by hackers. By closing the singing processes Apple has stopped anyone from downgrading their devices to 8.1.2 from either the current public software version 8.1.3, or the iOS 8.3 beta. As we mentioned in our previous article, the exploits used in PP Ghost / TaiG have been patched in versions above 8.1.2. This means that there is currently no way to jailbreak a device on the most recent firmware 8.1.3.

ipsw

  • For everyone already with a jailbreak make sure not to upgrade as your jailbreak will be broken and there will be no way to revert to the previous state.
  • For everyone that has or buys a device after today you will have to wait for hacker groups to release a new exploit which could easily take months. That being said the Chinese hacker team responsible for TaiG have been releasing updates faster than we have seen in the last few years.

Make sure to Like Us on Facebook for updates!

Source : jailbreaknation[dot]com
post from sitemap

Thứ Ba, 10 tháng 2, 2015

Creating Simple View Animations in Swift

28 Flares 28 Flares ×

Following the release of iOS 7 (and iOS 8 as well), animation and motion effects became central to the design of apps from both Apple and 3rd party developers. iOS 7 introduced a flat, minimal design to apps which inevitably resulted in some apps having a similar UI. To distinguish their apps from other apps, developers employed such features as animations and motion effects to make their apps stand out.

Not only are animations used to set your app apart, they can improve the overall user experience of your application. For great examples of how animations are used to improve UX, you should look at how Apple uses animations in their apps. For example, in the Photos app, when you select a photo from a collection, the photo expands out from the selected one and on closing it, it shrinks back to the selected photo. This adds to the navigation of the app in that it lets you know exactly where you were, if browsing many pictures.

view-animations-featured

Facebook’s Paper also employs animations beautifully to add to the overall user experience of the app. You select an article to read by flipping it up. This action, the fact that the article expands out from its thumbnail version, suggests that in doing the opposite, i.e. flipping the article downwards, would shrink it back to its thumbnail. Here, animation is used to convey how the app works and even a first time user of the app would soon be able to make assumptions on its use and figure out its navigation without needing a tutorial.

Not only do animations add to the user experience of the app, but they could be what delights and impresses your users guaranteeing repeat usage instead of uninstalling the app for a better one from the App Store.

There are numerous ways of including animations in your apps, some of them being by use of UIKit Dynamics, layer animations, view controller transitions or by using a third party library like the Facebook Pop library or JNWSpringAnimation framework.

In this tutorial we are going to look at simple view animations. You can download the starter project which is a Single View Application with a table view that lists the examples presented in the tutorial tutorial. I will be using this when we get to the examples portion of the tutorial, instead of starting from scratch.

The tutorial starts off with a summary of APIs used to animate views, and ends with some examples which show the use of some of the APIs in an app.

Basic View Animations

Creating animations on your views is a matter of changing properties on them and letting UIKit animate them automatically. The properties we change are the ones marked Animatable.

The following list shows the animatable properties.

  • center
  • alpha
  • frame
  • bounds
  • transform
  • backgroundColor
  • contentStretch

You will find that all animations involve a change of one or more of the above properties.

For simple view animations, UIKit provides the following APIs that can be used to animate views on the screen.

  • UIView.animateWithDuration(_:, animations:)
  • UIView.animateWithDuration(_:, animations:, completion:)
  • UIView.animateWithDuration(_:, delay:, options:, animations:, completion:)

The first one takes two parameters – a value for the duration in seconds of the animation and a closure where you specify the properties you want changed. UIKit will take the original state of the view and create a smooth transition from that state to the end state according to what you specified in the animations closure.

The other two APIs are similar to the first, but they take extra parameters that add more configuration to the animation. The second takes a completion closure which you can use to either specify another animation that you want done after the first or you can do some cleanup of the UI, for example, removing a view from the view hierarchy once another view is animated onto the scene.

The third API takes an additional two parameters – the delay, which is the time to wait before the animation starts and options, a UIViewAnimationOptions constant, which indicates how you want to perform the animations. The following shows the options available.

anim_image001

Spring Animations

Spring animations try to model the behaviour of a real life spring, in that, when a view is moved from one point to another, it will bounce/oscillate towards the end before settling down to position.

Below is the method block we use for spring animations.

  • UIView.animateWithDuration(_:, delay:, usingSpringWithDamping:, initialSpringVelocity:, options:, animations:, completion:)

The above is similar to the methods we looked at earlier except for two new parameters – usingSpringWithDamping and initialSpringVelocity. Damping is a value from 0 to 1 that determines how much the view bounces towards the end of the animation. The closer to 1 the value is, the less bouncy it will be. initialSpringVelocity as the name says, determines the initial velocity of the animation. This determines how strong the animation starts off. If you want it to start vigorously, then set a larger value, if you want a smooth animation, then you can set the value to 0.

Keyframe Animations

Keyframe animations enable you to set different stages of an animation. You can group different animations together that share some common properties, but still be able to control them separately.

Instead of an animation that just moves along a path, UIKit will execute the different stages of the animation.

The Keyframe animation APIs are as follows.

  • UIView.animateKeyframesWithDuration(_:, delay:, options:, animations:)
  • UIView.addKeyframeWithRelativeStartTime(_:, relativeDuration:)

The above two methods are used together, the second getting nested in the first’s animations closure.

The first method sets the overall configuration of the animation, like how long it takes, delay and its options. You then define one or more of the second method(the frames) inside the animations closure to set the different stages of the animation.

The relative start time and relative duration of each frame is a value between 0 and 1 that expresses the percentage time within the total duration of the animation.

View Transitions

View transitions are used when you want to add a new view to your view hierarchy or remove a view from the view hierarchy.

The APIs that are used to create view transitions are

  • UIView.transitionWithView(_:, duration:, options:, animations:, completion:)
  • UIView.transitionFromView(_:, toView:, duration:, options:, completion:)

You use the first one to introduce a view to the view hierarchy. The method takes similar parameters as we have seen in the other animation methods.

The second one is used to take one view from the view hierarchy and and place a new view in its place.

Examples

We’ll now look at a few examples that use some of the above API calls to animate views in the given starter project.

Example I

If you run the project, you’ll see a table view that lists the examples we’ll work through. Select Example I in the list and you should see a Login screen of an app with the username and password fields and login button.

We want these to be animated onto the screen when the app starts.

To get started we’ll hide the views from sight when the view first appears. Before Auto Layout, this would have been a simple matter of changing the specific view’s position in code, but since we set auto layout constraints on the views in the storyboard file, we’ll have to change the constraints in code, which will change the view’s position.

First, we need to get a reference of the constraints that we will change. Open the storyboard file. Locate the following constraints in the Example I Scene.

anim_image002

Open the Assistant Editor, and make sure it is the ExampleIViewController.swift that appears next to the storyboard on the split screen. Drag from the Center X Alignment – View – Username constraint to the ExampleIViewController class. Create an outlet named centerAlignUsername. Do the same for the Center X Alignment – View – Password and set its name to centerAlignPassword. Also create an outlet for the login button named loginButton and an action for the same button and name it login. Make sure you set the Type of the action to UIButton. You should have the following in code.

1
2
3
4
5
6
7
@IBOutlet weak var centerAlignUsername: NSLayoutConstraint!
@IBOutlet weak var centerAlignPassword: NSLayoutConstraint!
@IBOutlet weak var loginButton: UIButton!
   
@IBAction func login(sender: UIButton) {
       
}

In the ExampleIViewController.swift add the following method which is called before the view is presented on screen.

1
2
3
4
5
6
override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    centerAlignUsername.constant -= view.bounds.width
    centerAlignPassword.constant -= view.bounds.width
    loginButton.alpha = 0.0
}

This moves the username and password fields just out of view and sets the alpha value of the button to 0 which makes it invisible.

Add the following method which is called right when the view appears.

1
2
3
4
5
6
7
8
9
10
11
override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
       
    UIView.animateWithDuration(0.5, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {
        self.centerAlignUsername.constant += self.view.bounds.width
        self.centerAlignPassword.constant += self.view.bounds.width
        self.loginButton.alpha = 1
        self.view.layoutIfNeeded()
    }, completion: nil)
           
}

Here we use the UIView.animateWithDuration() method that we saw earlier. We include the UIViewAnimationOptions.CurveEaseOut option which makes the animation start fast then slow down at the end. You can experiment with different options here. Command-click on UIViewAnimationOptions to see all the options available.

The animation lasts for 0.5 seconds and starts immediately. You have liberty over the duration, but you shouldn’t set such a large number as to annoy your users when animations on your app seem to take too long. Normally, the duration is set between 0.5 and 0.7 seconds, but as I said, this isn’t set in stone and you have liberty to set it to whatever feels right to you.

The animation does the exact opposite of what we did in viewWillAppear(). layoutIfNeeded() is used to lay out the views immediately they are changed. If you don’t include it, you will not see them get animated onto the screen, instead they will just be shown in their final position. Run the app, and you should see the following.

video001

The above looks more interesting than a static presentation, but the views getting animated at the same time, doesn’t create that great an effect. Modify the method as shown below.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
       
    UIView.animateWithDuration(0.5, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {
        self.centerAlignUsername.constant += self.view.bounds.width
        self.view.layoutIfNeeded()
    }, completion: nil)
       
    UIView.animateWithDuration(0.5, delay: 0.3, options: .CurveEaseOut, animations: {
        self.centerAlignPassword.constant += self.view.bounds.width
        self.view.layoutIfNeeded()
    }, completion: nil)
       
    UIView.animateWithDuration(0.5, delay: 0.4, options: .CurveEaseOut, animations: {
        self.loginButton.alpha = 1
    }, completion: nil)
       
}

Run the app and the resulting animation has the views animating on screen at different times. Looking at the code, you can see that after the first animation block, we set a delay on subsequent ones.

video002

In login screens, when login fails, there is usually an animation that indicates to the user that login has failed. This is sometimes done as a shake of the text fields or the login button, and a message that lets the user know that login has failed. We’ll add such an effect on the login button using springs. Modify the login() function as shown.

1
2
3
4
5
6
7
8
9
@IBAction func login(sender: UIButton) {
       
    let bounds = self.loginButton.bounds
    UIView.animateWithDuration(1.0, delay: 0.0, usingSpringWithDamping: 0.2, initialSpringVelocity: 10, options: nil, animations: {
        self.loginButton.bounds = CGRect(x: bounds.origin.x - 20, y: bounds.origin.y, width: bounds.size.width + 60, height: bounds.size.height)
        self.loginButton.enabled = false
    }, completion: nil)
       
}

The above changes the size of the login button when pressed and animates the action with a spring animation which will cause the button’s width to expand and bounce a little at the end before settling.

video003

Play around with the damping value. If you set it to 1, the button will expand, with no bouncing at the end. You can also use the same method on the username and password fields. Instead of having them come onto the screen and just stop in place at the end, have them be spring-like and bounce a little before settling down.

Example II

In your app, you might need to replace the background image of a view automatically when some action happens. You could do it in a way where an image immediately replaces another on the view, or you could slowly fade it in to create a nice transition. We’ll create this effect here. Open ExampleIIViewController.swift and add the following.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
override func viewWillAppear(animated: Bool) {
       
    let firstImageView = UIImageView(image: UIImage(named: "bg01.png"))
    firstImageView.frame = view.frame
    view.addSubview(firstImageView)
       
    imageFadeIn(firstImageView)
       
}
   
func imageFadeIn(imageView: UIImageView) {
       
    let secondImageView = UIImageView(image: UIImage(named: "bg02.png"))
    secondImageView.frame = view.frame
    secondImageView.alpha = 0.0
       
    view.insertSubview(secondImageView, aboveSubview: imageView)
       
    UIView.animateWithDuration(2.0, delay: 2.0, options: .CurveEaseOut, animations: {
        secondImageView.alpha = 1.0
        }, completion: {_ in
            imageView.image = secondImageView.image
            secondImageView.removeFromSuperview()
    })
       
}

Here we create an image view and add it to the main view. We then call imageFadeIn() which creates a second view with a different image. We add this view above the first image view and set its alpha to 0. In the animation block, we animate its alpha value, making it visible. We then use a completion closure to set the image view’s image to the second image and we remove the second image view from the view hierarchy since it is no longer needed. I’ve added a long delay so that the animation doesn’t happen right at the moment we select Example II from the table view. The duration is also a bit long so we can see what’s going on in the demo.

The following is the effect.

videoeg02

Example III

Next we’ll look at keyframe animations. Open ExampleIIIViewController.swift and add the following variable and functions to the file. I’ve commented the code to explain each step.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var alertView: UIView!
   
func createView() {
       
    // Create a red view
    let alertWidth: CGFloat = view.bounds.width
    let alertHeight: CGFloat = view.bounds.height
    let alertViewFrame: CGRect = CGRectMake(0, 0, alertWidth, alertHeight)
    alertView = UIView(frame: alertViewFrame)
    alertView.backgroundColor = UIColor.redColor()
       
    // Create an image view and add it to this view
    let imageView = UIImageView(frame: CGRectMake(0, 0, alertWidth, alertHeight/2))
    imageView.image = UIImage(named: "bike_traveler.png")
    alertView.addSubview(imageView)
       
    // Create a button and set a listener on it for when it is tapped. Then the button is added to the alert view
    let button = UIButton.buttonWithType(UIButtonType.System) as UIButton
    button.setTitle("Dismiss", forState: UIControlState.Normal)
    button.backgroundColor = UIColor.whiteColor()
    let buttonWidth: CGFloat = alertWidth/2
    let buttonHeight: CGFloat = 40
    button.frame = CGRectMake(alertView.center.x - buttonWidth/2, alertView.center.y - buttonHeight/2, buttonWidth, buttonHeight)
       
    button.addTarget(self, action: Selector("dismissAlert"), forControlEvents: UIControlEvents.TouchUpInside)
       
    alertView.addSubview(button)
    view.addSubview(alertView)
}
   
func dismissAlert() {
       
}

In viewDidLoad() call the createView() function. Add the following to the bottom of viewDidLoad().

1
createView()

On running the app and selecting Example III from the table view, you should see a red view with an image view at the top and a button in the middle.

anim_image003

We want to have the view(which I’ll refer to as the alertView from now onwards) to shrink in size and fall downwards out of view.

When we created the button, we added a listener to it. When the button is tapped, dismissAlert() is called. Modify the function as shown.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
func dismissAlert() {
       
    let bounds = alertView.bounds
    let smallFrame = CGRectInset(alertView.frame, alertView.frame.size.width / 4, alertView.frame.size.height / 4)
    let finalFrame = CGRectOffset(smallFrame, 0, bounds.size.height)
       
    UIView.animateKeyframesWithDuration(4, delay: 0, options: .CalculationModeCubic, animations: {
           
        UIView.addKeyframeWithRelativeStartTime(0.0, relativeDuration: 0.5) {
            self.alertView.frame = smallFrame
        }
           
        UIView.addKeyframeWithRelativeStartTime(0.5, relativeDuration: 0.5) {
            self.alertView.frame = finalFrame
        }
    }, completion: nil)
       
}

In the above code, we create frames that represent what we want for the two stages of animating the view. smallFrame shrinks to half the size of alertView, maintaining the center point and finalFrame has a position at the bottom of the screen, out of view.

We use a Keyframe animation with two keyframes. The first sets alertView’s frame to smallFrame and the second to finalFrame. The result will be that the alertView will shrink to half its size and then fall out of view. Notice I have put such a large number for the duration – 4 seconds. You can change this, I just wanted the animation running in slow-motion for the demo. Run the app and select Example III.

video004

The animation isn’t quite what we expected. You can see the red alertView animate as expected, but the scale of its children doesn’t change. Changing the parent’s frame, doesn’t automatically change its children’s frames.

We’ll use a feature introduced in iOS 7 called UIView snapshots to fix the animation. This allows you to take a snapshot of a UIView together with its hierarchy and render it into a new UIView.

In dismissAlert() add the following right before the Keyframe animation code.

1
2
3
4
let snapshot = alertView.snapshotViewAfterScreenUpdates(false)
snapshot.frame = alertView.frame
view.addSubview(snapshot)
alertView.removeFromSuperview()

Here, we create a snapshot view and add it to the main view. We then remove the alertView from view, as the snapshot will replace it.

Replace the Keyframe animation with the following.

1
2
3
4
5
6
7
8
UIView.animateKeyframesWithDuration(4, delay: 0, options: .CalculationModeCubic, animations: {
    UIView.addKeyframeWithRelativeStartTime(0.0, relativeDuration: 0.5) {
        snapshot.frame = smallFrame
    }
    UIView.addKeyframeWithRelativeStartTime(0.5, relativeDuration: 0.5) {
        snapshot.frame = finalFrame
    }
}, completion: nil)

Run the application and on tapping Dismiss, the view(snapshot, really) should animate as expected.

video005

Example IV

We’ve looked at how you can animate simple views. In this example we’ll look at how you can animate a table view.

If you select Example IV from the table view, you will find another table view with a list of items in it. When the table view is presented, the list items are already positioned onto the table. We want to animate them onto the view to create a more interesting effect.

video006

Open ExampleIVViewController.swift and add the following methods.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
override func viewWillAppear(animated: Bool) {
    animateTable()
}
   
func animateTable() {
    tableView.reloadData()
       
    let cells = tableView.visibleCells()
    let tableHeight: CGFloat = tableView.bounds.size.height
       
    for i in cells {
        let cell: UITableViewCell = i as UITableViewCell
        cell.transform = CGAffineTransformMakeTranslation(0, tableHeight)
    }
       
    var index = 0
       
    for a in cells {
        let cell: UITableViewCell = a as UITableViewCell
        UIView.animateWithDuration(1.5, delay: 0.05 * Double(index), usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: nil, animations: {
            cell.transform = CGAffineTransformMakeTranslation(0, 0);
        }, completion: nil)
           
        index += 1
    }
}

Here, when the view appears, the animateTable() function is called. We reload the table view data and loop through the cells that are currently visible on the screen and move each of them to the bottom of the screen. We then iterate over all the cells that we moved to the bottom of the screen and animate them back to position with a spring animation.

Run the app and you should see the following.

video007

Conclusion

We have looked at various APIs that you can use to add animations to your app’s views. This is not an exhaustive guide on animation in iOS but by using the simple APIs we have looked at, you can create various animations in your apps. To dive further into iOS animations, you could look at UIKit Dynamics, layer animations, view controller transitions and even motion effects. You could also look at third party libraries like Facebook Pop and JNWSpringAnimation framework which could help you build intricate animations more easily.

You can download the completed project here.

As always, leave me comment and share your thought about the tutorial.

Source : appcoda[dot]com
post from sitemap

iOS 8.3 Beta 1 Released to Developers

iOS 8.3 beta 1

Apple has released the first beta of iOS 8.3 to those registered with the iOS Developer program, arriving as build 12F5027d. This is somewhat unusual given that iOS 8.2 is also currently still in beta release as version 8.2b5, but it may suggest a different focus for each point version of the operating system.


Alongside iOS 8.3 beta 1 is a new version of Xcode 6.3 beta SDK and Swift. iOS 8.3 looks to be compatible with all iPhone and iPad hardware that support existing versions of iOS 8.

Developers can find the iOS 8.3 beta IPSW available, along with updates to Xcode, as various downloads within the iOS Developer Center.

While iOS 8.2 appears to focus primarily on Apple Watch compatibility, iOS 8.3 could be aimed at more general improvements to iOS, or perhaps it may include support for future hardware like an updated iPad or iPod touch, though this is just speculation.

Those poking around in iOS 8.3 beta IPSW have found support for wireless CarPlay compatibility with the iPhone, and a suggestion that iCloud Photo Library may be coming out of beta in iOS 8.3 too.

In separate iOS news, a new report has suggested that iOS 9 will focus primarily on bringing performance optimizations and stability improvements to the iPhone and iPad experience.

The current publicly available release of iOS is versioned as 8.1.3.

Source : osxdaily[dot]com
post from sitemap

Thứ Hai, 9 tháng 2, 2015

How to Check What Cellular Carrier Network an iPhone Uses (or Used)

What cell network an iPhone uses

Knowing what network an iPhone uses can be important for trying to repurpose an old device, buying a used iPhone, or simply to determine if a particular iPhone will work on a network of choice. While the iPhones top status bar will show the carrier name of an active cellular network, if the device isn’t activated or doesn’t have a SIM card, it won’t display anything other than “No Service” in the status bar. That doesn’t mean you can’t find out what network the device is locked to or last used though.


Even if an iPhone has no service, no SIM card, and no activation on a CDMA network, you can still find out what cell carrier network the device was recently using or attached to by going to the device Settings.

Here’s how quickly check this in iOS on an iPhone:

  1. Open the Settings app on the iPhone and choose ‘General’ and then go to “About”
  2. Scroll down to find the following two items in the list, these may be different:
    • Network: This is the currently active network if one is available – this is not necessarily what the device will be locked to however, it’s only what cell network it is actively connected to – this will show as blank if there is no active network or no SIM card
    • Carrier: This is what you’re looking for to show you what network the iPhone last used, and in most cases, what network the iPhone is actually locked to. Carrier will also show the carrier settings version, sometimes carrier updates arrive separately from the general iOS software version to enable certain functionality

    Check cellular carrier on the iPhone even without a SIM card or cell service

    In the example screenshot, the Carrier of this particular iPhone shows AT&T (followed by the carrier software version) – this is the last network that the iPhone used, was bought with, and wants to join.

    So you may be wondering about phones that are bought unlocked, and maybe about an iPhone that has been unlocked through AT&T (like the phone in this screenshot), in these cases, the “Carrier” setting will show the last cellular carrier network that was joined or used. In other words, if you have an unlocked iPhone that was bought off contract at full price, and you mostly recently used a T-Mobile SIM, it would show that. Or if the iPhone was mostly recently using Verizon or Sprint, it would show that. This all matters for who and what can use a particular iPhone on a given network, though it’s important to point out that unlocking an iPhone makes the preferred cellular carrier irrelevant, if it’s an option. You can always check to see if an iPhone is unlocked by trying to use a different provider SIM card, if it works immediately, you’ll know the device is unlocked.

    Check iPhone carrier use and active network

    Aside from casual use and figuring out what network an iPhone can use, this can also be helpful for using ipcc files correctly. For those interested in gathering even more information an iPhone carrier (an active one, anyway), entering into Field Test Mode settings has some much more technical details available, far beyond just telling you which cell provider a device is actively using.

Source : osxdaily[dot]com
post from sitemap

Thứ Bảy, 7 tháng 2, 2015

View iPhone Cellular Signal & Battery Life from Mac OS X

Check iPhone Signal Strength and Battery Life from Mac OS X

The Instant iPhone Wi-Fi Hotspot feature in OS X is incredibly useful if your Mac is on the go or you need an alternate internet connection, but even if you’re not aiming to use the cellular internet sharing capability of iPhone there are some other handy uses for the feature, like checking two of your iPhone vital stats without having to pull the device out of a pocket or purse. As long as Instant Hotspot has been set up and the compatible Mac and compatible iPhone are nearby one another, you can remotely check on the battery life and cellular signal strength of that iPhone right from the Mac with a quick glance, even if the iPhone and Mac are in different rooms.


Viewing the cellular connection strength, cellular connection type, and battery life remaining on the iPhone, is a really simple trick, it’s more about knowing this ability exists than any complex walkthrough. So, assuming you’ve used the OS X Instant Hotspot before, all you need to do is this:

  1. Pull down the Wi-Fi menu on the Mac as you would to toggle or switch wireless routers
  2. Under the ‘Personal Hotspot’ section, find your iPhone name to see signal strength, signal type (LTE, 3G, 4G, Edge, • GPRS), and the battery level indicator

Check the iPhone Signal and Battery Life from the Mac OS X Wi-Fi Menu bar

The cellular connection strength indicator will change as the signal strength adjusts, as will the connection type. The signal indicator will always display as the five dots, ignoring the numerical indicator of Field Test Mode if that was enabled on the iPhone. Similarly, the iPhone battery indicator shown from the Mac wi-fi menu is the battery icon only, and at the moment there is no way to view the battery percentage remaining of the iPhone, even if you have that feature turned on in iOS.

See the iPhone signal and battery life from Mac OS X quickly

It’s important to note this quick-stats check feature requires a few things to work as described: both devices must use the same iCloud ID, you must have OS X 10.10 or newer installed on the Mac, the iPhone must be on iOS 8.1 or newer, and the iPhone must also have a cellular network plan that allows for Personal Hotspot internet sharing from the iPhone in general, which are the same requirements as using Instant Hotspot from a Mac anyway.

And now you know, you’ll never have to wonder what your mobile connection is or how much battery life is remaining on a pocketed iPhone (or even one charging across the room) again, just check it from your Mac. Give this a try the next time you’re traveling, working from a public space, or even just charging an iPhone a ways from your computer. A similar trick works to view the battery levels of many connected Bluetooth devices too.

Source : osxdaily[dot]com
post from sitemap