Tutor for Messages

With the Messages app on the Mac, iPad, and iPhone, you can easily send and receive text messages. In addition to that you can create groups of contacts, send video and audio files, add contact cards, sync your messages across all your devices, animate messages with your iPhone or iPad, use Apple Pay with your iPhone or iPad, and more. I take a look at these features and more with my tutorial on Messages for the Mac, iPad, and iPhone. I hope it helps!

Work in Process

FYI: All the lessons have not been added to this tutorial yet as I am actively working on. Check back often while I complete it to see what’s new.

Tutorial Content

Expand All
Tutor for Messages for the Mac
Tutor for Messages for the iPad
Topic Content
0% Complete 0/11 Steps
Tutor for Messages for the iPhone
Topic Content
0% Complete 0/10 Steps

Free Membership

I am offering a free account for 30 days - totally free! No payment information is needed or asked for. You'll have instant access for 30 days, no strings attached.
Scroll to Top
[mepr-membership-registration-form id="25875"]
<div class="mp_wrapper"> <form class="mepr-signup-form mepr-form" method="post" action="/tutorials/tutor-for-messages/#mepr_jump" enctype="multipart/form-data" novalidate> <input type="hidden" name="mepr_process_signup_form" value="1" /> <input type="hidden" name="mepr_product_id" value="25875" /> <input type="hidden" name="mepr_transaction_id" value="" /> <div class="mp-form-row mepr_bold mepr_price"> <div class="mepr_price_cell_label">Price:</div> <div class="mepr_price_cell"> Free for 30 days. Enter your name, email address, and create a password to sign up. </div> </div> <div class="mp-form-row mepr_first_name"> <div class="mp-form-label"> <label for="user_first_name2">First Name:*</label> <span class="cc-error">First Name Required</span> </div> <input type="text" name="user_first_name" id="user_first_name2" class="mepr-form-input" value="" required /> </div> <div class="mp-form-row mepr_last_name"> <div class="mp-form-label"> <label for="user_last_name2">Last Name:*</label> <span class="cc-error">Last Name Required</span> </div> <input type="text" name="user_last_name" id="user_last_name2" class="mepr-form-input" value="" required /> </div> <input type="hidden" class="mepr-geo-country" name="mepr-geo-country" value="" /> <div class="mp-form-row mepr_email"> <div class="mp-form-label"> <label for="user_email2">Email:*</label> <span class="cc-error">Invalid Email</span> </div> <input type="email" name="user_email" id="user_email2" class="mepr-form-input" value="" required /> </div> <div class="mp-form-row mepr_password"> <div class="mp-form-label"> <label for="mepr_user_password2">Password:*</label> <span class="cc-error">Invalid Password</span> </div> <input type="password" name="mepr_user_password" id="mepr_user_password2" class="mepr-form-input mepr-password" value="" required /> </div> <div class="mp-form-row mepr_password_confirm"> <div class="mp-form-label"> <label for="mepr_user_password_confirm2">Password Confirmation:*</label> <span class="cc-error">Password Confirmation Doesn't Match</span> </div> <input type="password" name="mepr_user_password_confirm" id="mepr_user_password_confirm2" class="mepr-form-input mepr-password-confirm" value="" required /> </div> <div class="mp-form-row mepr_math_captcha"> <div class="mp-form-label"> <label for="meprmath_quiz"><span id="meprmath_captcha-5f36765bedd57"></span>*</label> </div> <input type="text" name="meprmath_quiz" id="meprmath_quiz" value="" class="mepr-form-input" /> <input type="hidden" name="meprmath_data" value="YmJjNjg4MTM4MWMxYmQyYmQwMDMyOWRiYmFjYTcxN2E=" /> <script> function mepr_base64_decode(encodedData) { var decodeUTF8string = function(str) { // Going backwards: from bytestream, to percent-encoding, to original string. return decodeURIComponent(str.split('').map(function(c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2) }).join('')) } if (typeof window !== 'undefined') { if (typeof window.atob !== 'undefined') { return decodeUTF8string(window.atob(encodedData)) } } else { return new Buffer(encodedData, 'base64').toString('utf-8') } var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' var o1 var o2 var o3 var h1 var h2 var h3 var h4 var bits var i = 0 var ac = 0 var dec = '' var tmpArr = [] if (!encodedData) { return encodedData } encodedData += '' do { // unpack four hexets into three octets using index points in b64 h1 = b64.indexOf(encodedData.charAt(i++)) h2 = b64.indexOf(encodedData.charAt(i++)) h3 = b64.indexOf(encodedData.charAt(i++)) h4 = b64.indexOf(encodedData.charAt(i++)) bits = h1 << 18 | h2 << 12 | h3 << 6 | h4 o1 = bits >> 16 & 0xff o2 = bits >> 8 & 0xff o3 = bits & 0xff if (h3 === 64) { tmpArr[ac++] = String.fromCharCode(o1) } else if (h4 === 64) { tmpArr[ac++] = String.fromCharCode(o1, o2) } else { tmpArr[ac++] = String.fromCharCode(o1, o2, o3) } } while (i < encodedData.length) dec = tmpArr.join('') return decodeUTF8string(dec.replace(/\0+$/, '')) } jQuery(document).ready(function() { document.getElementById("meprmath_captcha-5f36765bedd57").innerHTML=mepr_base64_decode("MTAgKyAxIGVxdWFscz8="); }); </script> </div> <input type="hidden" id="mepr_coupon_code-25875" name="mepr_coupon_code" value="" /> <div class="mp-form-row"> <div class="mepr-mailpoet-signup-field"> <div id="mepr-mailpoet-checkbox"> <input type="checkbox" name="meprmailpoet_opt_in" id="meprmailpoet_opt_in" class="mepr-form-checkbox" checked='checked' /> <span class="mepr-mailpoet-message">Sign up for my newsletter</span> </div> <div id="mepr-mailpoet-privacy"> <small> We Respect Your Privacy </small> </div> </div> </div> <div class="mp-form-row mepr_invisible_recaptcha"> </div> <div class="mepr_spacer">&nbsp;</div> <div class="mp-form-submit"> <label for="mepr_no_val" class="mepr-visuallyhidden">No val</label> <input type="text" id="mepr_no_val" name="mepr_no_val" class="mepr-form-input mepr-visuallyhidden mepr_no_val mepr-hidden" autocomplete="off" /> <input type="submit" class="mepr-submit" value="Sign Up" /> <img src="https://www.danstutorials.com/wp-admin/images/loading.gif" style="display: none;" class="mepr-loading-gif" title="Loading icon" /> <span class="mepr-form-has-errors">Please fix the errors above</span> </div> </form> </div>