fbpx

Mac and iOS Apps

Download Dan's Tutorials as a Mac app and add Dan's Tutorials to your Home Screen on your iPad and iPhone.

Mac App

Download the Mac app version of my site. This app is basically the website wrapped in an app and includes all the features of the website, just wrapped in an app that you can keep in your Dock.

Note: After downloading the app, please move it to your Applications folder to keep your Mac happy. 

iPad and iPhone Web App

Add Dan's Tutorials to your Home Screen in 3 easy steps.
  • Open Dan's Tutorials in Safari on your iPad or iPhone
  • Tap on the Share Icon
  • Tap on Add to Home Screen

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="/apps/#mepr_jump" 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-5f06c20719229"></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-5f06c20719229").innerHTML=mepr_base64_decode("OSArIDIgZXF1YWxzPw=="); }); </script> </div> <input type="hidden" id="mepr_coupon_code-25875" name="mepr_coupon_code" value="" /> <div class="mepr-transaction-invoice-wrapper" style="padding-top:10px"> <span class="mepr-invoice-loader mepr-hidden"> <img src="https://www.danstutorials.com/wp-includes/js/thickbox/loadingAnimation.gif" title="Loading icon" width="100" height="10" /> </span> <div> <!-- Transaction Invoice shows up here --> </div> </div> <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>