Thứ Hai, 12 tháng 1, 2015

Create a Ringtone Directly on iPhone with Garageband

Garageband While you can turn a song into a ringtone using iTunes, another option to make custom ringtones is to create one yourself, directly on your iPhone using the Garageband app. This is a nice solution since it does not involve a computer or iTunes, and the entire ringtone or text tone creation process can be completed directly on the iPhone in just a few moments.


Building your own ringtones with Garageband for iOS is incredibly easy and just about anyone will be able to make a ringtone or text tone directly from their iPhone by using this method. Whether you’re musically inclined or not doesn’t even matter, be you Beethoven reincarnated or just adept at recording the noise of random piano keys or drum sounds, it can still be a ringtone.

A few quick notes; you’ll obviously need Garageband on your iPhone to do this. Garageband is free on new model iPhones, whereas it may require a purchase from the App Store on older devices. Also, for the best results you’ll want to keep the sound or music reasonably short if used as a ringtone, as it loops with an incoming call anyway. For text tones, you’ll probably want to keep the recorded audio extra short for best results. Technically you can record and assign a text tone or ringtone that is as long as 45 seconds, however. Let’s begin.

How to Create a Ringtone or Text Tone on iPhone Using Garageband

  1. Open the Garageband app on the iPhone
  2. Garageband

  3. Tap the [+] button to create a new song, select your instruments to use, and get ready to play around or just press buttons
  4. 1-create-new-song-for-ringtone-garageband

  5. When satisfied with your tone jingle idea, record the audio by tapping on the red Record button, then tapping it again to stop the recording
  6. 2-tap-record-make-sounds-for-ringtone-iphone-garageband

  7. Tap the downward pointing arrow icon in the corner and choose “My Songs”
  8. 3-go-to-my-songs-to-save-ringtone-iphone

  9. Select the song you just created and choose the Sharing icon in the corner, it looks like a box with an arrow pointing out of it
  10. 4-tap-share-button-to-save-iphone-ringtone-garageband

  11. Choose “Ringtone” from the sharing options
  12. 5-tap-ringtone-to-set-ringtone-iphone

  13. Name the ringtone whatever you would like and assign the artist name, song name, etc (this is basically the metadata for the Garageband song, which will be embedded in the ringtone) then tap on “Export”
  14. 6-name-ringtone-iphone

  15. Choose one of three options depending on what you want to do with the newly created ringtone:
    • Standard Ringtone – this assigns the ringtone as your new default ringtone for all incoming calls
    • Standard Text Tone – this assigns the ringtone as the new default text tone for all incoming text messages and iMessages
    • Assign to Contact – this assigns the ringtone specifically to a designated contact in your address book only playing when that individual contacts you

    7-assign-ringtone-iphone-from-garageband

  16. When finished, exit out of Garageband as usual and enjoy your newly created ringtone or text tone

Remember you can change ringtones and text tones at any point, so if you want to later assign the ringtone to a specific contact or as a text tone, you can quickly do that through iOS Settings or the Contacts app on your iPhone.

Garageband can also tap into the microphone of the iPhone if you want to record a custom voice message as well, though the trick of turning a Voice Recording from the dedicated app into a ringtone works as well if you made a voice note at some point that you’d prefer to use instead.

You’ll probably want to be somewhat musically inclined for this to be a good option for your iPhone ringtone generation. Whether or not it sounds good is really up to you and your musical abilities, for me personally, I’m not musically gifted at all, so my home made ringtones sound like a cat walking across a piano, but the result is certainly unique if not necessarily pleasant.

Have fun making your own custom ringtones!

Source : osxdaily[dot]com
post from sitemap

Thứ Năm, 8 tháng 1, 2015

Change the Slow Motion Video Recording Speed on iPhone by Adjusting FPS

iPhone Slow Motion video recording speed

All new iPhone models can capture and record high quality slow-motion video by flipping to the ‘slo-mo’ setting in Camera app. Perhaps lesser known is that you can change the Frames Per Second (FPS) capture speed for slow motion video, which basically determines just how smooth and slow the video playback is, but also has a more practical benefit for casual users that reduces the movies file size, which we’ll discus momentarily.


First, let’s show how to switch the FPS recording speed for Slow-Motion video capture in iOS, you can pick between either 240 FPS or 120 FPS:

  1. Open Camera app and go to the “Slo-Mo” section as usual
  2. Tap on the “240 FPS” (or 120 FPS) text to toggle between 240 or 120 frames per second recording setting
  3. Record the slow-motion video as usual, whatever FPS number is shown will determine the recording speed of the video

Change Slow Motion FPS Recording Speed on iPhone slow-mo video

Many users aren’t aware that the FPS text shown in the corner is actually a button toggle, since there’s really not much of an indicator that it’s selectable.

Generally speaking, the best slow motion videos are recorded at 240 FPS*, since it’s literally double the number of frames, and thus produces a slower and smoother movie. So why would you want to toggle the setting if 240 FPS is almost always better? Hardcore video editors will have a variety of reasons, but for most casual users the primary determining factor for using 240 or 120 FPS is simply a matter of storage requirements for the iPhone (or iPad), since the higher frame rate video recordings will take up considerably more storage space on an iOS device.

For simpler slow-motion recording and sharing, the lower FPS videos also will require less compression, so if you’re sharing them to social networks or uploading them directly from your iPhone to YouTube or Instagram, you’ll discover that the resulting video could have less artifacts due to the smaller file size too. Ultimately if you want the highest quality 240 FPS full HD video, you’ll need to transfer those video files to your computer manually and not rely on uploading them to any service directly from the iPhone or iPad.

* Do note that the ability to toggle between 240 FPS and 120 FPS vieo recording is limited to the newest iPhone models, earlier models are either set at the lower frame rate recording speed, or, for particularly old iPhones, don’t support slow motion video capture at all. Nonetheless, all iPhones can capture slow motion video either with the native Camera app or by using a third party app as described here.

Source : osxdaily[dot]com
post from sitemap

A Look at the WebKit Framework – Part 1

0 Flares 0 Flares ×

If you’ve ever built an application that required a webview to load web content in your native app, then you have probably experienced the frustrations that came with using UIWebView. UIWebView is quite limited and its performance lags behind that of Mobile Safari. JavaScript, which powers just about every web application, performs poorly in native mobile applications.

However, all of this has changed with the introduction of the WebKit framework in iOS 8. With the WebKit framework, comes WKWebView which replaces UIWebView in UIKit and WebView in AppKit, offering a consistent API across the two platforms.

The WebKit framework enables developers to create web enabled native apps that can utilize the power and Speed of Nitro, which is the JavaScript engine that powers Safari.

webkit-featured

WKWebView boasts of 60fps smooth scrolling, KVO, built-in gestures and native communication between app and webpage.

In the span of two articles, we’ll build two applications which will explore some of the features that WebKit (in particular, WKWebView) offers. For the first application (built in this tutorial), we’ll create a web browser that has some of the functionalities of Safari. The second article will go deeper into Webkit and show the more powerful features like injecting JavaScript into a web page to modify content and extract data.

Getting Started

To get started, create a new project. Make it a Single View Application named Browser and select Swift as the language and make it Universal.

image01

In ViewController.swift import the WebKit framework.

1
import WebKit

Next add the following variable to the class.

1
var webView: WKWebView

Add the following method to the class. It initializes the web view with frame of size zero. Later we’ll add auto layout constraints to the webview so that it adapts to whichever device and orientation it is run on.

1
2
3
4
required init(coder aDecoder: NSCoder) {
    self.webView = WKWebView(frame: CGRectZero)
    super.init(coder: aDecoder)
}

At the bottom of viewDidLoad() add the following statement which will add the webView to the main View.

1
view.addSubview(webView)

Next add the following constraints at the bottom of viewDidLoad()

1
2
3
4
webView.setTranslatesAutoresizingMaskIntoConstraints(false)
let height = NSLayoutConstraint(item: webView, attribute: .Height, relatedBy: .Equal, toItem: view, attribute: .Height, multiplier: 1, constant: 0)
let width = NSLayoutConstraint(item: webView, attribute: .Width, relatedBy: .Equal, toItem: view, attribute: .Width, multiplier: 1, constant: 0)
view.addConstraints([height, width])

Here we first disable auto-generated constraints with the first statement and then we define the height and width constraints for the webView. The webView will have the same height and width as its superview’s height and width.

We’ll load a default URL when the app starts. Later we’ll add a text field that the user can use to enter a URL. Add the following at the bottom of viewDidLoad()

1
2
3
let url = NSURL(string:"http://www.appcoda.com")
let request = NSURLRequest(URL:url!)
webView.loadRequest(request)

Run the application. It will load the homepage of Appcoda. When you scroll down, notice that you can see the page scrolling underneath the translucent navigation bar. We’ll disable this. Open Main.storyboard and select the View Controller. In the Attributes Inspector, uncheck the Under Top Bars option in the Extend Edges group. When you run the app again, the nav bar should now be solid and you won’t see the webpage underneath it.

image02

Next we’ll enable url input from the user.

In the storyboard file, drag a view onto the navigation bar in the view controller. In the Attribute Inspector, set its Background to Clear Color. Since you can’t apply auto layout constraints within a navigation bar, we’ll set its size in code.

Open the Assistant Editor and create an outlet for the view by control-dragging from the view to the ViewController class. Name the outlet barView. You should have the following in your code.

1
@IBOutlet weak var barView: UIView!

Add the following to viewDidLoad() after the call to super.viewDidLoad()

1
barView.frame = CGRect(x:0, y: 0, width: view.frame.width, height: 30)

This sets the size of the barView when the app loads.

Add the following method to the class.

1
2
3
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
    barView.frame = CGRect(x:0, y: 0, width: size.width, height: 30)
}

This will set the size of the barView when the device orientation changes.

On running the app you should see the view stretched out on the navigation bar. When you change orientations or devices, the view adapt its size accordingly.

Next drag a Text Field onto the view. Using the Pin button at the bottom of the canvas, pin its top, bottom, right and left with a spacing of 0.

image03

Fix the Auto Layout issues by selecting Editor > Resolve Auto Layout Issues > Selected View > Update
Frames

Create an outlet for the text field. Name it urlField. You should have the following.

1
@IBOutlet weak var urlField: UITextField!

We want the view controller to receive UITextFieldDelegate protocol methods, so in the Document Outline, control-drag from the text field to the view controller and select delegate from the popup.

image04

With the text field selected, set the following in the Attributes Inspector.

  • Clear Button: Appears while editing
  • Correction: No
  • Keyboard Type: URL
  • Return Key: Go

Change the class declaration as follows so that it conforms to the UITextFieldDelegate protocol.

1
class ViewController: UIViewController, UITextFieldDelegate

Next add the following UITextFieldDelegate protocol method to the class.

1
2
3
4
5
func textFieldShouldReturn(textField: UITextField) -> Bool {
    urlField.resignFirstResponder()
    webView.loadRequest(NSURLRequest(URL: NSURL(string: urlField.text)!))
    return false
}

This dismisses the keyboard and loads the URL given by the user. Test it with a url. You have to enter the full url, i.e. http://google.com. Since this can be a bit cumbersome to your users, you could write code that checks the url string for ‘http://’ and if not present, appends it to the beginning of the url string, thus allowing users to enter such urls as google.com. We won’t get into this here.

Navigating Through History

Our browser is working but still lacks some features that we’ve come to expect of web browsers, namely loading indicator, back and forward buttons, reload button e.t.c.

With KVO (Key Value Observing) loading progress, page title and URL are now observable properties of WKWebView. You can use these values to update your UI accordingly.

First, we’ll add the back, forward and reload buttons.

In the storyboard, select View Controller and then in the Attributes Inspector, under Simulated Metrics, change Bottom Bar to None.

Drag a Toolbar onto the view and place it at the bottom. Pin its left, right and bottom with a spacing of 0, making sure Constrain to margins is unchecked.

image05

In viewDidLoad() edit the webView’s height constraint to take this into account.

1
let height = NSLayoutConstraint(item: webView, attribute: .Height, relatedBy: .Equal, toItem: view, attribute: .Height, multiplier: 1, constant: -44)

Remove the existing button item from the toolbar and drag the following in order: a Bar Button Item, a Fixed Space Bar Button Item, a Bar Button Item, Flexible Space Bar Button Item and a Bar Button Item. The toolbar should look as shown.

image06

Edit the bar button items text to and R respectively. These will be our Back, Forward and Reload buttons. In a real app, it would be better to use icons on the buttons, but for ease, we’ll use text. The toolbar should look as shown.

image07

Create outlets for each of the bar button items. Name them backButton, forwardButton and reloadButton respectively. You should have the following in your code.

1
2
3
@IBOutlet weak var backButton: UIBarButtonItem!
@IBOutlet weak var forwardButton: UIBarButtonItem!
@IBOutlet weak var reloadButton: UIBarButtonItem!

Then create actions for the same buttons and name them back, forward and reload respectively. For each action, change the Type to UIBarButtonItem. You should have the following in your code.

1
2
3
4
5
6
7
8
@IBAction func back(sender: UIBarButtonItem) {
}
   
@IBAction func forward(sender: UIBarButtonItem) {
}
   
@IBAction func reload(sender: UIBarButtonItem) {
}

At the bottom of viewDidLoad() add the following. We don’t want the back and forward buttons to be enabled when the app first loads.

1
2
backButton.enabled = false
forwardButton.enabled = false

Add the following to viewDidLoad() after the constraints are added, and before the code that creates and loads a request. This adds the class as an observer of the loading property.

1
webView.addObserver(self, forKeyPath: "loading", options: .New, context: nil)

Add the following method to the class. It will be called whenever the observable property changes. The state of the back and forward buttons will be changed according to the current state of the web view.

1
2
3
4
5
6
override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer) {
    if (keyPath == "loading") {
        backButton.enabled = webView.canGoBack
        forwardButton.enabled = webView.canGoForward
    }
}

Modify the back(), forward() and reload() functions as shown.

1
2
3
4
5
6
7
8
9
10
11
12
@IBAction func back(sender: UIBarButtonItem) {
    webView.goBack()
}
   
@IBAction func forward(sender: UIBarButtonItem) {
    webView.goForward()
}
   
@IBAction func reload(sender: UIBarButtonItem) {
    let request = NSURLRequest(URL:webView.URL!)
    webView.loadRequest(request)
}

Run the application and test the buttons. The back and forward should be disabled at first. When you navigate to a page, the back button should be enabled. When you go back, the forward button should be enabled. Tapping R should reload the page.

Handling Errors

You can’t always rely on the user to always type in a correct url. We’ll write code to catch errors and notify the user.

First modify the class declaration as shown.

1
class ViewController: UIViewController, UITextFieldDelegate, WKNavigationDelegate

The WKWebView has a property named navigationDelegate which expects an object that conforms to the WKNavigationDelegate protocol. The protocol provides different methods dealing with navigation events, including loading errors.

Add the following to the bottom of init(). With this, the class will be the navigation delegate of the web view.

1
self.webView.navigationDelegate = self

Next add the following method to the class. This is the delegate method that gets called when there is an error.

1
2
3
4
5
func webView(webView: WKWebView!, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError!) {
    let alert = UIAlertController(title: "Error", message: error.localizedDescription, preferredStyle: .Alert)
    alert.addAction(UIAlertAction(title: "Ok", style: .Default, handler: nil))
    presentViewController(alert, animated: true, completion: nil)
}

Run and test the app with an incorrect url.

image08

Displaying Progress

To finish off, we’ll add a progress indicator to the app.

In the storyboard file, drag a Progress View onto the view and place it below the navigation bar. Pin its top, right and left as shown.

image09

Create an outlet for the Progress View and name it progressView. You should have the following.

1
@IBOutlet weak var progressView: UIProgressView!

In ViewController, replace the statement

1
view.addSubview(webView)

with this

1
view.insertSubview(webView, belowSubview: progressView)

In viewDidLoad(), add the following below the statement that calls addObserver() on the webView, before the creation and loading of the url request.

1
webView.addObserver(self, forKeyPath: "estimatedProgress", options: .New, context: nil)

Add the following to the bottom of observeValueForKeyPath() after the other if statement.

1
2
3
4
if (keyPath == "estimatedProgress") {
    progressView.hidden = webView.estimatedProgress == 1
    progressView.setProgress(Float(webView.estimatedProgress), animated: true)
}

This updates the progress view as the value of estimatedProgress changes or hides it when loading completes.

Add the following method to the class. It is a WKNavigationDelegate protocol method that gets called when the page load completes. We use it here to reset the progress view value after each request.

1
2
3
func webView(webView: WKWebView!, didFinishNavigation navigation: WKNavigation!) {
    progressView.setProgress(0.0, animated: false)
}

Run the app and you should see a blue progress line as the app loads.

image10

Conclusion

We have looked at the basics of the new WebKit framework. We’ve seen how to add some of the features offered by Safari, namely loading urls, navigating through history, detecting and handling errors and displaying progress. In part 2 of this tutorial, we’ll go deeper into webview and look at how to inject JavaScript into a web page to build a more powerful application.

You can download the code to this tutorial here.

Source : appcoda[dot]com
post from sitemap

Thứ Tư, 7 tháng 1, 2015

App Showcase #1: AffordIt Budget Tracker by Andrew Walker

2 Flares 2 Flares ×

Last year, we published a series of developer stories to share the learning experience of some first-time app developers. We got great feedback about the stories and their experience inspired others to learn iOS programming. Starting this year, we’re going to bring you more developer stories and showcase their apps on a regular basis. The purpose of these developer stories is twofold:

  • Some said iOS programming is hard to learn. It’s true. It’ll take a lot of hard work to become a competent developer. However, iOS programming is not rocket science. With the release of Swift, it’s now even more approachable to beginners. As long as you put your effort in and are committed to take action, we believe you can build an app from scratch. The developers we interviewed are mostly amateur app developers. We hope their stories would encourage aspiring developers to learn programming and build their own apps.
  • Other than helping our readers learn programming, we always think how to help you promote your apps. With over 1,000,000 apps, the App Store is now extremely competitive. You probably have released your first app on App Store but only got a few downloads. Even if you have a high quality product, it’s not easy to break into the top 100. In the developer stories, we’ll feature an app created by the app developer. In average, we have over 200,000 monthly readers. This is not a big number but we are quite sure it would help your apps gain some exposure. From time to time, we’ll also share the stories with our email subscribers and on our Facebook page. Together we can help each other succeed.
affordit-featured

Without further ado, here comes to the first app showcase – AffortIt.

1. Tell me more about your background and your app. Was it your first app?

My name is Andrew Walker, I am a 17 year old iOS Developer who has just completed and released my first app ‘AffordIt’. My first programming experience was a couple of years ago in High School when I was learning Visual Basic 6. The strange thing is that I actually found it in some ways, more challenging than learning Swift and Xcode. Of course, it was my very first programming language so there is always a steeper learning curve, however I think that my experience shows just how far modern programming languages have come.

After I left high school, I decided that I needed something to fill my time over the summer until University. And as I was about to start a Computing Engineering course, I thought it would be very beneficial to develop some knowledge of a modern programming language to give me a bit of a head-start. About a week into my summer Apple announced Swift and I immediately decided that now was the perfect time to learn to program for iOS.

affordit-2My app is called AffordIt and it’s available on the App Store for $0.99. The idea behind it is to allow users to keep track of how much they have spent in a particular situation. You can enter a budget, a budget name, all of your payment and credit transactions, and the app keeps a running total of everything. From day 1 of development on AffordIt, to the finished product it was a total of 47 days of constant work (Around 8+ hours a day). I’ll describe my idea behind the app more in the next section.

2. How did you come up with the idea? How long did it take to develop the app?

Initially I spent about 2 weeks learning the basics. I went through Apple’s Swift book that is available in the iBooks store and I reached page 87. At the same time, I was looking on YouTube for some tutorials which I found very helpful, however the issue was that none of what I was learning was being put into use. I would read/watch a tutorial and then make small adjustments and experiment in Playgrounds, but what I really wanted to do was to create something.

I started off creating a simple test app that would display a welcome message and the time of day when you press a button. After this I moved on to recreating the project that I completed in Visual Basic 6 for school, however as this was a TV Game Show, I knew that I had to come up with my own idea for it to be able to be submitted to the App Store.

I then decided to look around the App Store for inspiration. I browsed through all of the categories until I identified a gap in the market. I noticed that in the Finance category there is thousands of apps for tracking your ongoing monthly budget, but there is very few/none that track individual events or situations. I wanted to build an app that would be perfect for keeping a log of how much you have spent on holiday, or on Christmas presents, or on a day out. I also wanted to keep things simple. The majority of the finance apps on the app store are massively cluttered and over complicated with graphs, diagrams and endless screens of information. So that’s when I created AffordIt.

3. Do you have any programming experience before developing the app? How did you learn iOS programming?

As I mentioned, my very first programming language was Visual Basic 6. Although I had been using the language for a couple of years, I probably had about 2 months worth of solid knowledge. I really didn’t learn a whole lot about programming in High School.

When it came to Swift it was somewhat of a challenge, particularly in the first few weeks of the language being released. There was barely any material on learning Swift and I found myself spending a lot of time translating Objective-C code. This turned out not to be a bad thing, because at this stage I now feel I have a reasonable grasp on not only Swift, but also Objective-C.

My main resources were Apple’s Swift iBook, Stack Overflow and Apple’s Developer forums. Although these were great for learning the basics, I still had no reliable source for easy to understand, well explained tutorials until I came across AppCoda. There were some specific elements of my app that I was having a lot of difficulty with and without fail, the tutorials I found on AppCoda fixed my problem.

4. What are you going to do to promote your app?

This is the part that I have been looking forward to for a while. I used to have a technology YouTube channel that I ran when I was 10 that I spent a lot of time promoting. I plan to use some similar techniques that I learnt from back then. After doing some research, I noticed that a lot of developers don’t bother to promote their app, which I see as a huge missed opportunity.

Of course the easiest way to promote an app is to show it to friends and family. Apple provide 100 promotional codes that you can give to people to download your app. However, I wouldn’t recommend giving these to friends and family as this isn’t the most effective way to use them. Personally, if I had to, I would rather give people $0.99 to download my app and save the promotional codes for better uses.

affordit-1Hopefully I will find some mobile app review websites that will be willing to take a look at my app and write an article on it. I think that if all goes well, this will be a huge boost to my app’s download numbers. And along the same lines, I will be trying to get in touch with some business sites to tell them the story behind my app to encourage others to give it a try. Social networking is another obvious promotional route.

5. What were the most valuable lessons you learnt from AppCoda and its book?

If you have taken a look at my app, you will notice that the main functionality and the ‘core’ of the app is within the second tab. This is a Table View which stores all of a users payment and credit inputs. It is where the majority of my work went into and also the element that gave me the most trouble. What saved me was AppCoda’s Table View and Custom Cell tutorials which clearly explained what a Table View is and how to make it work.

I also used AppCoda for other elements in my app such as figuring out how to implement a search bar and sharing via Twitter, Facebook and Email. Even today, after taking a look at a few tutorials on the site today I have some exciting new ideas for updates.

6. Any advices for those who just started learning iOS programming?

The first thing I would make clear is that iOS programming is certainly not easy. I had days where I made next to no progress on my app and felt like I would never get things working. It does require a lot of dedication and determination to make a fully functioning app, but the rewards are well worth it. You need to remember that no matter what issue you are having, it is fixable somehow. You just need to work at it.

The next piece of advice I would give is to avoid spending all your time reading through documentation. You have to do the boring stuff first and learn the basics, but after you feel like you understand things a bit better, jump straight into creating an app that you are interested in. If I had spent my entire summer reading Apple’s documentation, I would have certainly given up.

I have noticed that a lot of people argue that before learning to program for iOS, you should always learn a more basic language first. While this may have been true for Objective-C, I believe Swift is the perfect first language as it’s intuitive, well-designed and predictable.

7. What’s your next plan?

Now that AffordIt is on the store I will spend a few weeks doing a lot of promotion. I already have a list of ideas that I would like to add in an update so you can expect to see some new features very soon. I have just started my Computing Engineering course so I am looking forward to learning new programming languages that should help me bring my app to other platforms sometime in the future.

If you’re interested to share your app development experience and story, drop us a message.

Source : appcoda[dot]com
post from sitemap

Thứ Ba, 6 tháng 1, 2015

How to Disable Auto-Correct on iPhone Completely

Turn Off Auto-Correct in iOS

If you’re fed up with auto-correct on the iPhone erroneously changing words to things you did not intend to type, you can opt to disable the auto-correction feature completely in iOS. Doing away with this feature is not recommended for most users, but choosing to turn off autocorrect can be a reasonable solution for some unique situations where the typo prevention feature is persistently a nuisance or just outright wrong.


We’re going to walk through the process of disabling the typing and word auto-correction ability in iOS, this is demonstrated with an iPhone but it’s the same on an iPad or another iOS device too. The toggle exists in all even somewhat modern versions of iOS so you shouldn’t have trouble finding it regardless of how new or old your hardware is. And yes, like all settings, it can be quickly reversed if you decide you’d rather have the default setting and typo error correction returned to your mobile typing again.

Turning Off Auto-Correction in iOS

  1. Open the “Settings” app on the iPhone or iPad
  2. Go to “General” and then to “Keyboard”
  3. Locate “Auto-Correction” and flip the switch to the OFF position
  4. Exit out of Settings as usual

Disable Auto-Correction in iOS Settings as seen on the iPhone

Note that you can disable auto-correct while simultaneously leaving on spell checking, and while leaving the handy Quick Type keyboard intact in iOS, which can be a happy medium solution for many users who hate auto-correct but want to be notified of typos and have faster typing options available.

Ditching autocorrect can be completed in under 15 seconds, as demonstrated in this quick little video:

While you’re modifying the keyboard settings, you might also want to silence those key click sounds too, which seem to bother the same people who are bothered by the automated typographical correction ability too.

By the way, if you’re just bothered by how auto-correction handles some words or typos, sometimes just resetting the autocorrect dictionary or training autocorrect how to handle specific words is sufficient to stop any annoyances with the feature.

Nevermind, I Want to Enable Typing Auto-Correction On iOS

Of course users can always opt to return the Autocorrection function back to their iPhone and iPad if they should wish to have the feature enabled again:

  1. Return ot the “Settings” app and visit “General” followed by “Keyboard”
  2. Flip the switch next to ‘Auto-Correction’ into the ON Position

Just switching the toggle back ON is sufficient and the change takes effect immediately, you’ll be back to autocorrecting your iOS typing for better or worse in no time.

Do you have any auto-correct tricks or solutions, or just decided to disable the function? Let us know in the comments!

Source : osxdaily[dot]com
post from sitemap

Chủ Nhật, 4 tháng 1, 2015

Introducing Your Baby to New Fruits and Vegetables

When your baby has mastered the very fine purees and simple flavors most often introduced as the first solid foods, it's time to start incorporating new flavors into your baby's diet. When your baby starts to enjoy more variety, it's time to think outside of the box. Get beyond the typical apples and bananas and offer your baby some different and often overlooked fruits and vegetables that offer up tons of nutrition and plenty of flavor.

Avocados. Avocados are an excellent early food for babies. They have a silky, smooth texture that only requires fork mashing, rather than real pureeing. The mild flavor is very often a hit with babies, and avocados are loaded with the good fat that babies need.

Kiwi. Kiwi also has a naturally soft texture so it is easy to mash to the correct consistency for your baby. While kiwis may be a little sour for your baby at first, they are a wonderful source of vitamin C.

Melons. Melons such as cantaloupe, honeydew, and watermelon are great fruits for your baby to try. Again, they have a naturally soft texture so they are easy to chew. Cantaloupe is packed with vitamins A and C. Honeydew is also a great source of vitamin C and watermelon has lycopene, vitamin C, and vitamin A.

Cherries. Bing cherries, chopped into tiny pieces, are another great fruit for your baby to try. Cherries provide vitamin C and potassium.

Broccoli. Because of the naturally firm texture of broccoli, it is sometimes overlooked as a baby food. Removing the florets and chopping them finely, however, makes broccoli a great vegetable to mix in with another puree such as carrots. Broccoli is a nutritional powerhouse providing vitamin C, fiber, iron, calcium, potassium, and folate. The gassiness that broccoli often gives adults, typically does not translate to babies.

Spinach. Spinach can be pureed alone or mixed with other purees. Because it has a rather strong flavor, your baby may like it better when mixed with something else. Spinach is packed with nutrients including Vitamin A, C, magnesium, folate, and iron.

Summer Squash. Your baby probably already likes butternut or acorn squash, but what about yellow summer squash? This vegetable provides vitamin C and has a mild flavor that many babies love. Just make sure you leave the skin on and chop it very finely.

Corn. Corn too is often overlooked as a vegetable because it is sometimes considered to be a grain. But with vitamin C and fiber, and a naturally sweet taste, corn can be a nice addition to your baby's diet. Be sure your baby is accustomed to chewing before trying smashed corn kernels.

Tomatoes. Tomatoes are acidic so make sure your baby is a little older (8 or 9 months) before incorporating tomatoes into his diet. Chopped tomato makes a great finger food. Tomatoes are full of lycopene, vitamins A and C, and potassium.

When feeding your baby make sure you consider all that your grocery store produce section has to offer, not just the same old fruits and vegetables. Introducing your baby to plenty of new flavors from a young age will help her to be open to new foods for a lifetime, and will give her the ultimate in good nutrition.

Disable Raise to Listen for Audio Messages in iOS to Prevent Weird Voice Text Behavior

Audio message in iOS

Raise To Listen is a handy feature in modern versions of iOS that allow you to literally raise your iPhone to listen to a received audio message and to respond by sending a new voice text. But the feature is not entirely reliable for all users (particularly those who use an iPhone case, more on that in a moment), and as a result it can cause some annoyances where a message is inadvertently marked as listened or played, and because audio messages remove themselves by default, those audio messages may disappear from your iOS device without ever actually listening to them. Perhaps even more annoying is that some third party cases and protective screen products may cause the Raise to Listen response feature to trigger at inappropriate times or cut off in the middle of a voice text, sometimes sending an audio message that is incomplete.


As you may have guessed by now, if audio messaging “Raise to Listen” is misbehaving, you can often resolve the trouble by removing the case or any third party protective screen layer from the iPhone. But going case-less is not always reasonable for some users who are prone to dropping their devices. Thus, troubleshooting Raise to Listen is difficult for those of us who rely on protective cases, so another option is simply disable the Raise to Listen and Raise to Respond feature for now and prevent any erroneous listening or response behavior.

  1. Open the “Settings” app and head to “Messages”
  2. Scroll down under ‘Audio’ and flip the switch for “Raise to Listen” to the OFF position

Raise to Listen and Raise to Respond to audio messages in iOS

Very straightforward, and while you’ll lose the Raise to Listen and Raise to Respond feature, this will also prevent the inconsistent behavior that causes messages to be read before hearing, or sent before being finished recording.

Interference with Proximity Sensor a Likely Cause of Weird Audio Message Behavior

So why does Raise to Listen not always work consistently, or erroneously detect that you are trying to listen to or record a message? It’s hard to say with complete certainty, but for many users the problem is not actually the Raise to Listen feature in iOS, but rather the third party case or protective shield they have placed on their iPhone. This is particularly true if the iPhone case is one of the bulky protective models, where it may be covering or clouding a portion of the proximity detector located near the earpiece speaker of the iPhone, which is pointed out here:

Proximity Sensor on the iPhone

This is quite easy to see on a white iPhone, but black iPhones hide the sensor very well making it nearly invisible. Similarly, many of the clear protective plastic shields that are placed on iPhone screens to protect them from scratching can interfere with Raise to Listen and cause it to behave strangely. Of course, another solution would be to cut out the portion of the plastic shield (or case) that covers that sensor, but with any bulk added to the iPhone it still may perform not quite as intended, so buying a case that does not interfere with the sensor may be a better solution. Or just disable the setting if you find it to be annoying.

Source : osxdaily[dot]com
post from sitemap