Every aspiring Web developer should know about the power of
JavaScript and how it can be used to enhance the ways in which
people see and interact with Web pages. Fortunately, to help us
be more productive, we can use the power of JavaScript libraries,
and in this article we will take a good look at jQuery in action.
What Is jQuery?
In a nutshell, jQuery is a leading JavaScript
library that can perform wonders on your Web pages and
make your Web development life much easier and more enjoyable.
With the rise in popularity of jQuery since its arrival in
2006, over an estimated 24 million websites (50% of them being
the 10,000 most visited websites) currently reap the benefits,
and as Google Trends suggests, it’s the most popular JavaScript
library.
Thousands of Web developers worldwide use jQuery to innovate on
their websites and stay up to date on trends. This surge has
been influenced by several jQuery gurus who have helped make
jQuery what is today. I would like to personally thank these
guys and gals for their hard work and would like to do my part
to spread the news about JavaScript and jQuery. In this
article, we’ll show you over 50 of jQuery’s most
renowned functions, demonstrated with live visual
examples. The jQuery library is comprehensive, so hopefully
seeing these most frequently used functions in action will
improve your understanding of how they can work together to
produce excellent results.
jQuery And CSS
Styles play a big part in the look and feel of any website, and
jQuery can help us change them dynamically. In this section, we
will look at how jQuery can be used to dynamically add and
remove style classes and entire cascading style sheets.
.css()
You can change your website’s styles
dynamically with jQuery’s .css() function. Either
change styles that are already declared inline or in CSS files
(such as font-size, color,
background-color, etc.) or create new styles for
elements.
Demo: Change text color and background color
Blue text with orange background
Demo: Add a style sheet
.addClass() and .toggleClass()
In addition to the .css() function, you can
apply currently defined CSS classes by using
the .addClass() function. Its counterpart function,
.removeClass(), reverses the action.
Demo: Add a CSS class to an element
Click “Run demo” to add the styles to the button. Click “Reset”
to remove the styles.
Anchor ButtonClick!
The .toggleClass() function is a huge
time-saver for toggling a state on and off with CSS.
The following example sets event handlers for
mouseenter (which applies the CSS class
img-hover to the image) and
mouseleave (which removes it).
Demo: Toggle a CSS class on an element
jQuery Animations And Effects
We can use jQuery to create some very smooth animations and
effects with minimal effort. Animations and effects are always
best demonstrated with examples, so let’s dive right in.
.animate()
The .animate() function can be used to animate the movement
and/or appearance of elements on a Web page. Let’s look at
both. You may define the settings parameter with a set duration
(in milliseconds) or any of the words slow,
normal or fast. The callback, which
is the function that runs after the animation has finished, is
optional.
Demo: Animate text
Demo: Animate size
Easily change the size of a div.
Demo: Animate movement
The .animate() function is asynchronous, so
multiple animations may run at the same time.
You can also use the .stop() function to stop the
animation. If you click “Run demo” and then “Reset” during the
animation, it will demonstrate the .stop()
function.
Many pure JavaScript functions are used
frequently in animations, such as setInterval(),
clearInterval(), setTimeout() and
clearTimeout(). Once again, these functions are
included in the list because understanding what they can do is
important to supporting the jQuery’s animation functions.
setInterval() and clearInterval()
You can automate a task based on time using
the JavaScript setInterval() function, which can
be used to specify a regular time-based trigger.
Demo: Simple time counter
Click “Run demo” to start the timer, and click “Reset” to stop
it.
0 seconds
elapsed
Demo: Digital time display
setTimeout() and clearTimeout()
You can also delay a task based on time using
the JavaScript setTimeout() function, which can be
set to wait for a specified length of time before running the
code.
Demo: Do something after a specified length of time.
Click “Run demo” to set the timeout and, click “Reset” to clear
it.
This text will disappear after three seconds.
.slideToggle() and .fadeToggle()
jQuery provides various toggle functions that save us heaps of
time when we want to bind related events to the same
element. For example, .slideToggle() binds both
.slideUp() and .slideDown() to the element and also manages
that state for us.
Demo: Slide an element in and out of view.
Click “Run demo” to show the paragraph, and click again to
hide.
Curabitur placerat commodo augue eget congue. Aliquam id ante
leo. Duis at libero magna, at dignissim odio. Aliquam aliquet
suscipit mollis. Pellentesque libero tortor, elementum id
mattis vel, mattis eget metus. Nam convallis interdum
imperdiet. Fusce at magna tellus. Sed mi ante, aliquam at
accumsan ac, tristique sit amet dui. Aliquam eleifend
molestie ligula. Vivamus eleifend, diam id tincidunt posuere,
ipsum dui elementum sapien, posuere pulvinar risus neque id
turpis. Nullam volutpat cursus libero, sit amet euismod justo
eleifend vitae.
The .slideToggle() function is similar to
.slideToggle() but with a fading
effect that uses the .fadeIn() and
.fadeOut() methods.
Demo: Fade an element in and out of view.
Click “Run demo” to show the paragraph, and click again to hide
it.
Curabitur placerat commodo augue eget congue. Aliquam id ante
leo. Duis at libero magna, at dignissim odio. Aliquam aliquet
suscipit mollis. Pellentesque libero tortor, elementum id
mattis vel, mattis eget metus. Nam convallis interdum
imperdiet. Fusce at magna tellus. Sed mi ante, aliquam at
accumsan ac, tristique sit amet dui. Aliquam eleifend
molestie ligula. Vivamus eleifend, diam id tincidunt posuere,
ipsum dui elementum sapien, posuere pulvinar risus neque id
turpis. Nullam volutpat cursus libero, sit amet euismod justo
eleifend vitae.
.delay()
In this demonstration, we’ll mainly use jQuery’s awesome
function-chaining ability by running the
.fadeOut(), .fadeIn() and
.delay() functions together on the same element.
This is very similar to the setTimeout() function
we saw earlier but without allowing us to easily interrupt the
delay.
Demo: Use .delay() to create a delay between
function calls.
jQuery And DOM Manipulation
The DOM (document object model) is all of the HTML content that
you see on a website (text, images, container elements, etc.).
We can use jQuery to perform wonders with the
DOM when all page elements have been loaded. The event
that captures when the DOM is ready is called
.ready(), and there are a few ways to call it. In
this section are demos of jQuery functions that change the DOM
in some way.
.clone()
The jQuery .clone() function is pretty simple to
use; it basically just copies the element that you specify into
a new element.
Demo: Clone an element.
.html(), .text() and .empty()
Using .html() is the most common way to
get or set the content of an element using
jQuery. If you just want the text and not the HTML tags, you
can use .text(), which will return a string
containing the combined text of all matched elements. These
functions are browser-dependent (i.e. .html() uses
the browser’s innerHTML property), so the results
returned (including white space and line breaks) will always
depend on the browser you are using.
In this example, we are also making use of the
.empty() function, which is a quick way to get rid
of the content within, and .prev(), which can be
used to reference the preceding element, in this case the demo
buttons.
Demo: Get the content of an element.
.append(), prepend(), .after() and .before()
These function provide the means of inserting content
in particular places relative to elements already on
the Web page. Although the differences may appear trivial, each
has its own purpose, and knowing exactly where they will all
place content will save you coding time.
The jQuery library has a full suite of AJAX capabilities that
enables us to load data from a server without
refreshing the browser page. In this section, we will
have a quick look at refreshing page content, loading scripts
and retrieving data from different Web pages and servers.
$ .ajax()
The $ .ajax() function is arguably the most used
jQuery function. It gives us a means of dynamically
loading content, scripts and data and using them on a
live Web page. Other common uses are submitting a form using
AJAX and sending data to server-side scripts for storing in a
database.
The $ .ajax() function has a lot of settings, and
the kind team at jQuery has provided many shorthand
AJAX methods that already contain the settings we
require. Some developers like to write out the full
AJAX settings, mainly because they require more options than
many shorthand methods provide (such as
beforeSubmit()). Also, note that you can use the
Firebug NET.panel to analyze HTTP requests for testing,
monitoring and debugging AJAX calls.
Demo: Use $ .ajax() to load content without
reloading the entire page.
For this demo, HTML content is held in separate files, which
are inserted below using AJAX. Showing a loading icon while an
AJAX request is processing is courteous. The third content
block below has a two-second delay to simulate the loading
icon.
Content will appear here.
We can also use functions such as $ .parseJSON()
and JSON.parse() from ECMAScript5, which
simplifies JSON parsing. If you’re interested in JSON parsing
and tree recursion, see the “Online JSON Tree Viewer Tool.”
.load()
The .load() function is an AJAX shorthand
method for inserting HTML straight into a matched
element on the Web page.
Demo: Use .load() to grab HTML content from
another Web page.
JSONP
AJAX requests are subject to the same origin policy, which
means you may only send requests to the same domain.
Fortunately, $ .ajax() has a property named JSONP
(i.e. JSON with padding), which allows a page to request data
from a server on a different domain. It works by wrapping the
target data in a JavaScript callback function. Note that the
response is not parsed as JSON and may be any JavaScript
expression.
Demo: Use AJAX and JSONP to load data from an external source.
This demo will load the latest pictures tagged “jQuery” from
Flickr’s public feed.
The AJAX shorthand functions $ .getJSON and
$ .getScript and more AJAX examples can be found
on my blog.
jQuery And Events
Managing events using regular JavaScript is entirely possible,
however, jQuery provides a much more user-friendly interface to
manage Web page events. Examples of such events are clicking a
hyperlink, moving the mouse over an image and even pressing a
key on the keyboard; the list goes on. Here are some examples
of key jQuery functions that may be used to manage events.
.bind() and .unbind()
The .bind() function is very useful for
adding event triggers and handlers to your DOM
elements. In case you didn’t know, you can bind your
DOM elements to a whole list of events, such as
submit, change,
mouseenter and mouseleave.
You may have also seen .click() used in jQuery
code. There is no functional difference between
.click() and .bind('click'), but with
the latter we have the benefits of being able to specify custom
events and add data parameters. There is also an
.unbind() function to remove any events that have
already been bound.
Demo: Trigger an event when the user clicks on or hovers over a
div.
Demo: Trigger an event when the user hovers over or
double-clicks a div.
Press “Run demo” a few times in a row for some nice
effects. Also, double-clicking the boxes will make
them disappear!
Demo: Trigger an event when the user presses a key.
Press any key shown in the boxes below.
Note: The key difference between
keydown and keypress events is that
the latter captures each individual character entered, as
opposed to just firing once per key press. To illustrate, this
simple tool shows the keycodes for any key that you press.
.live(), .on() and .off()
The .live() function is essentially the same as
.bind(), but it can capture events on new
elements that didn’t exist on the page when it was
loaded; for example, if your Web page has loaded and then you
dynamically insert an image onto it. If we used
.bind() to attach an event when the mouse hovers
over the image, it would not work. But if we used
.live(), it would work! As of jQuery 1.7, you are
advised to make use of the new .on() and
.off() functions, instead of the
.live() function, which has a few disadvantages to
.on(). See “jQuery 1.7+ .on() vs.
.live() Review” for a more detailed explanation of
the differences.
Demo: Capture events on new or changed elements.
Click “Run demo” to dynamically insert more images and check
that the event still fires on them.
.delegate()
The .delegate() function provides a means of
attaching event handlers to new elements (similar to the
.live() function covered above). You might find
.delegate() to be faster than
.live() because the latter searches the
entire document namespace for the elements as opposed to a
single document. The much more important difference is that
.live() is prone to break if used with traversing.
Demo: Delegate events to the child elements of a root element.
The demo area is the root element (orange border) with colored
span child elements that have a hover event attached. Click
“Run demo” a few times and hover with the mouse to trigger the
effects.
.preventDefault()
The .preventDefault() function can be applied to
stop any element with a default action from
firing: hyperlinks, keyboard shortcuts, form submit
buttons, etc. These are probably the most common uses, and the
function stops the hyperlink from going to its destination (the
href). It’s very useful for stopping those default
actions and running your custom JavaScript actions instead.
Demo: Prevent a hyperlink from going to its href.
.stopPropagation()
There are methods that do things similar to
.preventDefault() but that behave differently. The
.stopPropagation() function prevents the
event from occurring on any ancestor elements. This
can be used if you have an exception to the rule that you’ve
specified for a container element with child elements. This
function currently does not work with
.live() events because it handles events
once they have propagated to the top of the document.
Demo: Prevent a parent container from firing its event when its
child is clicked.
Click both the link and div box area to see which event is
fired.
This div does not use the
.stopPropagation() function.
http://www.smashingmagazine.com
This div does use the
.stopPropagation() function.
http://www.smashingmagazine.com
As you can see, when you click the top link it also fires off
the div event, but the bottom link uses
.stopPropagation(), which prevents the div event
from firing. The div event will still fire if you click
inside the div, as expected.
.stopImmediatePropagation()
This function is nice for stopping all future bound
events. The events will fire in the order they were
bound, and when it hits the
.stopImmediatePropagation() function, all further
bound events are not fired.
Demo: Prevent all future bound events from firing.
Click both the link and div box area to see which event is
fired.
This div does not use the
.stopImmediatePropagation() function.
Link 1: http://www.smashingmagazine.com
Link 2: http://www.smashingmagazine.com
Link 3: http://www.smashingmagazine.com
This div does use the
.stopImmediatePropagation() function.
Link 1: http://www.smashingmagazine.com
Link 2: http://www.smashingmagazine.com
Link 3: http://www.smashingmagazine.com
As you can see, when you click the links in the top div, all
of the events fire off. But when you click the links in the
bottom div, only the code for all of the links fires off
because it calls .stopImmediatePropagation() on
the event. This function also prevents the event from
firing on any ancestor elements, just like the
.stopPropagation() function, as seen in the
example where the div click event doesn’t fire
on the bottom links.
Finding, Looping And Filtering Results
jQuery gives us fast access to finding anything on the page and
the ability to loop through or filter results
as we please. It also has powerful functions to
manipulate and extend data and functionality
associated with JavaScript objects. There are so many things to
cover in this section, so we have narrowed them down to a few
key functions.
$ .each() and .each()
There are two different methods for iterating with jQuery:
.each() is used to iterate only over jQuery
objects collections, while $ .each() is a general
function for iterating over JavaScript objects and arrays. I am
a big fan of functions such as these and JavaScript shorthand
techniques that provide us with a fast alternative to basic
JavaScript coding.
Demo: Use $ .each() to loop through values in an
array.
Output the countries of the world (stored in an array).
Demo: Use .each() to loop through DOM elements.
This demo loops through all of the h2 tags on this
Web page and creates a table of contents.
You can use $ .each() and .each() on
a lot of different things, such as DOM elements, arrays,
objects and JSON. For those of you who are keen, you could try
five more jQuery .each() examples.
$ .data(), .data(), $ .hasData() and $ .removeData()
Updates to the jQuery library (mainly since 1.4) has brought
the ability to attach data of any type to DOM
elements. This is a very useful alternative to storing
data in JavaScript objects and other such methods. There are
two versions: $ .data(), which takes in the
element as a parameter, and .data(), which can
attach directly to matched elements.
Note that $ .data() returns a data object to the
caller, whereas .data() does not. There are also
many utility functions, such as $ .hasData(),
$ .removeData(), that help with data management.
Demo: Attach data to DOM elements.
The following example sets and gets a data object into the div
for this demo area.
Set data | Get data | Has data? | Remove data
Data:
.match(), .test() and :contains()
Together with the jQuery :contains() selector, you
can use the pure JavaScript functions .match() and
.test() to save time when filtering for
string values. Let’s look at some examples.
Demo: Extract email addresses from inside HTML (i.e. a string).
We can use .test() to check whether any emails are
present, and use .match() to extract them.
Curabitur placerat commodo augue eget congue. Aliquam id ante
leo. Duis at libero magna, at dignissim odio. Aliquam aliquet
suscipit mollis. Pellentesque libero tortor, elementum id
mattis vel, mattis eget metus. somebody1@somewhere.com Nam
convallis interdum imperdiet. Fusce at magna tellus. Sed mi
ante, aliquam at accumsan ac, tristique sit amet dui. Aliquam
eleifend molestie ligula. Vivamus eleifend,
somebody2@somewhere.com diam id tincidunt posuere, ipsum dui
elementum sapien, posuere pulvinar risus neque id turpis.
Nullam volutpat cursus libero, sit amet euismod justo
eleifend vitae.
Demo: Use the jQuery :contains() selector to match
elements with substrings.
We can use the :contains() selector to match
substrings inside any of that element’s descendants (this is
case sensitive).
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Curabitur quis arcu ac justo pellentesque ullamcorper sit
amet quis mi.
Nam a lorem quis lacus dapibus egestas et a ipsum.
Phasellus nec magna quis diam cursus egestas quis aliquet
tortor.
Ut feugiat vestibulum mi, sit amet consequat orci
facilisis ac.
Phasellus et enim ut sem dapibus hendrerit.
Search:
.find()
The .find() function is very useful for
matching elements filtered by a selector, jQuery object
or element. The .find() function can be
used with the functions .children() (which
searches only the direct child siblings of the matched
elements) and .parents() (which searches the
direct parent elements of the matched element).
Demo: Finde specific descendants of matched elements.
Folder 1
Subfolder 1
Item 1.1.1
Subfolder 2
Item 1.2.1
Item 1.2.1.1
Item 1.2.1.2
Folder 2
Item 1.3.1
Item 1.3.1.1
Item 1.3.1.2
.filter()
The .filter() function allows us to reduce
a set of matched elements based on a jQuery selector.
This is useful when you want to process a group of elements and
then further process specific child elements. The
.filter() function can be used in a few different
ways, such as to filter by a class name, function or jQuery
object.
Demo: Use .filter() to match subelements.
In this example, .filter() is used to style
paragraphs based on their content.
Paragraph 1
Paragraph 2 with span tag
Paragraph 3 with strong tag
Paragraph 4 with highlight class.
Paragraph 5 with span tag
Paragraph 6
Paragraph 7 with strong tag
Paragraph 8 with span tag
Paragraph 9
.slice()
The .slice() function lets us easily
specify a subset of elements to perform actions
on. It takes two parameters: start and
end indices of subelements in a matched parent
element.
Demo: Use .slice() to perform actions on a subset
of elements.
Slice 1
Slice 2
Slice 3
1
1
1
1
2
3
1
4
2
7
3
0
3
6
1
.prev() and next()
The .prev() and .next() functions can
be used to reference the immediately preceding or next
element in a set of matched elements (in the DOM
hierarchy). You can also add a selector to the functions that
acts as a filter on the elements (shown in the demo).
Demo: Reference the previous and next elements in a list.
List item 1
List item 2
List item 3
List item 4
List item 5
$ .extend()
The $ .extend() function can be used to
combine two or more objects into the first
object or into a completely new object.
$ .extend( target, [object1,] [objectN] )
In the demo, we have a functional contact form on our website,
and we want two more forms with similar functionality. Instead
of copying all of the code that processes the form, we can use
$ .extend() to copy the functionality to
our new forms, thus avoiding repetitive code. You
might have noticed that the target element specified is a blank
object; this is a trick that you will often see to create a new
object of object1 and extend it with
objectN (N representing any number of
objects). So, in the example, we want to “copy” the existing
functionality of forms.enquiry and simply override
the email address.
Demo: Use $ .extend() to change the
send action on a form to different email addresses
based on the form used.
This demo simulates the submission of three forms that all use
the same code base.
Demo: Use $ .extend() to specify custom settings
for a plugin.
This demo shows how to specify the length of paragraph
excerpts. The default is 150 characters.
Run
Excerpts plugin
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed
do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim
ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex
ea commodo
consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id
est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed
do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim
ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex
ea commodo
consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id
est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed
do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim
ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex
ea commodo
consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id
est laborum.
Addy Osmani’s book Learning JavaScript Design Patterns
gives greater insight into how to use the $
.extend() function to override the default values of
jQuery plugins.
.serialize() and .serializeArray()
The .serialize() and
.serializeArray() functions can create
string and array values from form fields in seconds!
There are two demos here: the first outputs all of the form’s
fields and their values, and the second creates a URL string
with the form fields and values appended to the form action
ready to be sent.
To run the demo, enter anything into the form
and click the “Run demo” buttons below the form.
Demo: Create an array of all of the form’s field values
Demo: Create a URL string with all of the form’s field values
Conclusion
Although we have only scratched the surface of jQuery in this
article, we hope you have learned something about some of the
most popular jQuery functions and are able to use them to write
fantastic code for your next Web development project. Thanks
for reading.
Welcome To Today’s JVNP 2.0 Weekend Update Featuring A JV
Offer
Courtesy Of Fellow JVNP 2.0 Partner Harrison Klein (Masters
Gathering
2012 – Instant Transformation Telesummit JV Invite), Buzz
Builders +
More … in Today’s Instant Transformation Proclamation Edition.
- Mike Merz Sr
Harrison Klein – Masters Gathering 2012 – Instant
Transformation
Telesummit JV Invite
Pre-Launch Begins: Monday, June 25th 2012
Launch Day: Monday, July 9th 2012
Source: v3.jvnotifypro.com via Mike on Pinterest
Dear, Fellow JVNP 2.0 Partner.
Today you have the opportunity to not only partner with a
seasoned,
respected leader in the personal development industry but also
to
bring in a steady stream of commissions for yourself over the
next
several months.
Harrison Klein and Farhana Dhalla are gearing up to launch their
next
installment of The Masters Gathering 2012 Instant
Transformation
Telesummit with two dozen luminaries, experts and speakers to
help
people transform their lives. There are 24 coaching sessions in
all with
massively respected and loved experts. And the best part is …
it’s
completely free.
When you promote Instant Transformation Telesummit, you’ll
not
only give your audience fantastic for free, but you’ll also earn
40%
commissions. We’re selling the mp3s from the entire series for $
97
(all downloadable). So you’ll earn $ 38.80 on every sale.
If you refer 150 people who purchase the mp3s,that puts $
5,820
in your pocket!
Chances are you can refer a lot more people than that and earn
a
lot more money. But you need to get on board now and plan to
get the word out to your audience.
Pre-launch starts on Monday, June 25th and goes to Friday July
6th.
We’ll broadcast the one-hour interviews twice a week on
Mondays
& Thursdays starting July 9th.
Conversions for the last series were over 42% on opt-ins and
sales
converted at 6.7%. Not bad!
And, due to the depth with Harrison’s wonderful products, you
have
even more opportunity to earn more money! In the sales funnel,
we
have four proven, high-converting individual programs and offers
at
$ 47 (you earn $ 18.80 commission) or the bundle of all four for
$ 147
(you earn $ 58.80 commission).
And, to really show you how much we appreciate your help in
promoting this series, we’re offering you a whipping $ 1,000
commission on every sale for Harrison’s coaching program.
Harrison’s coaching program ALWAYS sells out – someone’s
going
to get PAID the big bucks and it might as well be you!
To make it easy for you, we’ll do all the work and provide you
with
expertly-written sales copy to promote the series and your
referrals
will be tracked through a unique link that’s set up special for
you.
You can log into your affiliate account at any time and check
your
stats.
Listen in to successful Internet marketers and entrepreneurs
Lance
Hood and Darius Barazandeh talk about their experience in
promoting
past events with Harrison. Darius reveals that one of the past
events
brought in $ 100,000 in sales and Lance grossed over $ 50,000 on
just
one call. Harrison has the potential to help you earn quite a
lucrative
income!
(To Access The Merchant’s JV Page, A Link To The Forum
Archive
Of The Mailing For Discussion, VIP Review Access (When
Available*)
+ More … Click The Link Above. *VIP Review Access Will Be
Made
Available To VIP Partners That Register To Support This Launch
No
Later Than 7 Days Prior To Prelaunch/Launch)
#####
*** If You Have Trouble Accessing Any Link On This Page,
Please Make Sure You Are Logged Into www.JVNotifyPro.com
+ www.JVNewsWatch.com … First. If The Problems Persist,
Please Reply Directly To The Newsletter With The Issue, And
We’ll Do Our Best To Respond + Resolve The Problem … ASAP.***
*** If You’re Having Trouble Logging In, Please Use The
Account
Management Center***
***All Other Issues, Please Use The Support Helpdesk***
http://support.jvnotifypro.com/
#####
Editor’s Note: For those JVNP 2.0 Partners that don’t read
the
legal stuff at the bottom of every mailing …
This mailing contains (a) JV connection request(s) from (a)
fellow
JVNP 2.0 Partner(s) that either by themselves, or working
with
a fellow partner that has, earned the spot due to content
contribution +/or support of fellow JVNP 2.0 Partners over time.
The JV request is being made by the merchant(s) (or official
representative(s)), NOT JVNotifyPro.com, to you … the JVNP
2.0
Partner.
It is expected and recommended that you perform due
diligence when getting involved in any venture that may
affect you, your business, it’s prospects and customers.
It’s also assumed that, as an Online Business Owner, you’re
capable of running your own business using common sense,
logic + exercising personal responsibility.
#####
———-
Buzz Builders
Mark Ling – AffiloBlueprint Version 3.0 JV Invite
Launched Just This Past Tuesday, May 29th 2012
AffiloBlueprint v3.0 is a comprehensive step-by-step course
that
shows customers exactly how to set up a money-making
affiliate
website in only 12 weeks.
You get paid anywhere from $ 35 to $ 229 per sale, there’s
over
$ 10k in Launch prizes and during pre-launch I’m putting up $
2
cash per lead for top promoters.
(To Access The Merchant’s JV Page, A Link To The Forum
Archive
Of The Mailing For Discussion, VIP Review Access (When
Available*)
+ More … Click The Link Below. *VIP Review Access Is
Available
To VIP Partners That Register To Support This Launch)
Matt + Bryan Green, Ken McArthur + Ken Lovett – Power SEO Ranker
JV
Launched Just This Past Thursday, May 31st 2012
Get on board … Powerful Backlinking tool + very profitable
Aged
Domain Tool!
This is not another get and forget software for your clients
…
No trickery here.
This is one of the few ways left to get your website ranked
high
in the search engines today!
Make 50% per sale and recurring income on both up and down sells
…
(To Access The Merchant’s JV Page, A Link To The Forum
Archive
Of The Mailing For Discussion, VIP Review Access (When
Available*)
+ More … Click The Link Below. *VIP Review Access Is
Available
To VIP Partners That Register To Support This Launch)
Chad Hamzeh + Matt O’Connor – Traffic Blackbook 2012 JV
Invite
Affiliate Program Announced: Thursday, May 31st 2012
Launch Day: Evergreen (Basically Make Money For The Long Haul)
The biggest most badass traffic course online… $ 2 EPCs and
$ 223/sale over thousands of hops.
Chad Hamzeh practices what he preaches having earned multiple
6 figures as a traffic and media buyer.
He’s teamed up with top copywriter Matt O’Connor to bring you
an
offer that converts 5% organic traffic!
Evergreen Rolling Launch/Affiliate Program
(To Access The Merchant’s JV Page, A Link To The Forum
Archive
Of The Mailing For Discussion, VIP Review Access (When
Available*)
+ More … Click The Link Below. *VIP Review Access Is
Available
To VIP Partners That Register To Support This Launch)
Chad Mureta + Jonathan Cronstedt (JV Manager) – App Empire JV
Invite
Launched Just YESTERDAY Friday, June 1st 2012
You may think you have seen app launches, but not like this.
You’re going to finally meet the man that has taught the
industry
gurus, and he’s not pulling any punches.
Your people are going to get a ton of immediately actionable
training
from the source, while you have the opportunity to earn $ 998.50
for
every sale …
(To Access The Merchant’s JV Page, A Link To The Forum
Archive
Of The Mailing For Discussion, VIP Review Access (When
Available*)
+ More … Click The Link Below. *VIP Review Access Is
Available
To VIP Partners That Register To Support This Launch)
Eric Roberts, Chris Jones + Cindy Battye – The Intervestor JV
Invite
Launch Day: Tuesday, June 5th 2012
^^Notice Launch Date Change^^
Huge Payouts $ 475.50 Per Sales + Residuals.
We show customers how to “inter-vest” and buy, sell, and hold
websites and earn instant cash in 30 days or less!
This will be a monster …
(To Access The Merchant’s JV Page, A Link To The Forum
Archive
Of The Mailing For Discussion, VIP Review Access (When
Available*)
+ More … Click The Link Below. *VIP Review Access Is
Available
To VIP Partners That Register To Support This Launch)
Michael Beeson + Bobby B – Affiliate Overthrow JV Invite
Launch Day: Thursday, June 7th 2012 @ 8AM EST
Win a Bentley Continental GT in the Affiliate Overthrow
Launch
June 7th!
Overthrow the Super Affiliate Team of Michael Beeson & Bobby
B
and win the Bentley! Sign up and check out the unique team
concept that can have you winning the Bentley or $ 70,000
cash
even if you’re not a Super Affiliate …
(To Access The Merchant’s JV Page, A Link To The Forum
Archive
Of The Mailing For Discussion, VIP Review Access (When
Available*)
+ More … Click The Link Below. *VIP Review Access Is
Available
To VIP Partners That Register To Support This Launch)
Steve Olsher – Internet Prophets Live! JV Invite
Affiliate Program Announced Tuesday, May 8th 2012
Date + Location Of Live Event: June 8 – 10 – Chicago, IL USA
Promote this Summer’s largest Internet and Mobile marketing
conference and exhibition focused specifically on teaching
small
business owners and solopreneurs how to profit online,
Internet
Prophet’s LIVE!, and earn 50% on each ticket sold.
27 leading experts including Jay Conrad Levinson, Larry
Winget,
Janet Bray Attwood, Armand Morin, Mike Filsaime and many others.
(To Access The Merchant’s JV Page, A Link To The Forum
Archive
Of The Mailing For Discussion, VIP Review Access (When
Available*)
+ More … Click The Link Below. *VIP Review Access Is Not
Available,
As This Is A Live Event … However, Steve Will Provide You With 5
Free
Tickets To The Event As A Bonus For Registering + Mailing.)
Bill McIntosh, Eric Louviere + Stephen Renton – MemberSnap JV
Invite
Launch Day: Monday, June 11th 2012
MemberSnap Launch Paying 75% On A Highly Converting Offer!
Affiliates Are Getting Over 15% Front End Conversions!
* Over $ 20,000 in cash and prizes! * Proven & Tested to the
tune
of 4,000+ customers already!
* High Quality, Proud To Promote Program People Want & Need!
Sign Up Below …
(To Access The Merchant’s JV Page, A Link To The Forum
Archive
Of The Mailing For Discussion, VIP Review Access (When
Available*)
+ More … Click The Link Below. *VIP Review Access Is
Available
To VIP Partners That Register To Support This Launch)
Paul Clifford – PageOne Curator JV Invite
Pre-Launch Begins: Tuesday, June 5th 2012
Launch Day: Tuesday, June 12th 2012
Make up to $ 441 a sale with a PROVEN affiliate EPC of $ 3.36
across
3,500 front end units sold in just our test WSO week
promoting
PageOne Curator – the whitehat Google ranking training and
software.
(To Access The Merchant’s JV Page, A Link To The Forum
Archive
Of The Mailing For Discussion, VIP Review Access (When
Available*)
+ More … Click The Link Below. *VIP Review Access Is
Available
To VIP Partners That Register To Support This Launch)
Mindvalley – Christie Marie – Unlimited Abundance JV Invite
Pre-Launch Begins: Friday, June 22nd 2012
Launch Day: Thursday, June 28th 2012 @ 9PM EST
Stop right there and click right here … you Marketing God, you.
It’s time to meet the company and campaign you’ve been
scrolling
down for.
Say Hello to Mindvalley …
(To Access The Merchant’s JV Page, A Link To The Forum
Archive
Of The Mailing For Discussion, VIP Review Access (When
Available*)
+ More … Click The Link Below. *VIP Review Access Will Be
Made
Available To VIP Partners That Register To Support This Launch
No
Later Than 7 Days Prior To Prelaunch/Launch)
Marc Milburn – List Profit Sniper JV Invite
Launch Day: Monday, July 9th 2012
Six-Figure Marketer Marc Milburn invites you to partner with
him
and grab $ 318.60 per sale (60% commissions) and over $
10,000
in JV prizes! EPCs $ 2+
(To Access The Merchant’s JV Page, A Link To The Forum
Archive
Of The Mailing For Discussion, VIP Review Access (When
Available*)
+ More … Click The Link Below. *VIP Review Access Will Be
Made
Available To VIP Partners That Register To Support This Launch
No
Later Than 7 Days Prior To Prelaunch/Launch)
Jacobo Benitez + Michael Carlin – SEO Fight Back JV Invite
Launch Day: Thursday, July 12th 2012
Rake In $ 375 Per Sale With A Revolutionary Penguin & Panda
Proof
Google Ranking System – SEO Fight Back by Michael Carlin and
Jacobo Benitez – The untraceable… undefeatable… impenetrable…
linking network to rule them ALL – Launches July 12th @ 12:00 PM
EST
(To Access The Merchant’s JV Page, A Link To The Forum
Archive
Of The Mailing For Discussion, VIP Review Access (When
Available*)
+ More … Click The Link Below. *VIP Review Access Will Be
Made
Available To VIP Partners That Register To Support This Launch
No
Later Than 7 Days Prior To Prelaunch/Launch)
Jimmy D. Brown – Membership To Go JV Invite
Launch Postponed – Please Register To Be Notified Of New Launch
Date.
Jimmy D. Brown, the guy who basically started the PLR
industry,
has released a “ready-to-go” PLR package to an entire
membership
site!
This has never been offered before and it includes EVERYTHING
you need to get started, including PLR to the membership
content,
sales letter, presell report, and articles …
(To Access The Merchant’s JV Page, A Link To The Forum
Archive
Of The Mailing For Discussion, VIP Review Access (When
Available*)
+ More … Click The Link Below. *VIP Review Access Is
Available
To VIP Partners That Register To Support This Launch)
Pawan Agrawal, Eben Pagan, Tim Buchalka, Greg Jacobs,
Damien Zamora and other fellow JVNotifyPro 2.0 partners
are waiting in the wings … keep your eyes on your Inbox,
and follow the action in the JVNP 2.0 Premium VIP JV
Announcement archives:
“Hey, Mike … I really appreciate the combination of Fellow
Partner + Popular JV Invites you offer in the JVNP 2.0
Update,
but how can I get on board Popular JV launches that are
available to get on board but didn’t make the latest mailing
like the highly anticipated offerings from Chris R, Steven
Lee
Jones + Ben S, Melford and Concetta Bibens + John Hayward,
Andrew X + Steven Johnson, Asher, Ciel + Folusho, John
Racine,
Matt + Phil Benwell, Eva Bright, Imran S, Simon W + Salman S,
Raam Anand, Rob Stafford, Bercaru Viktor, Jason Keith + Jason
Zimmerman, Matt Alexander, Brian Koz + Shawn Casey, Pamela
Harper, Andrew Gotti + Josh M, Anthony La Rocca and others?
Answer: The JVNewsWatch JV Product Launch Calendar +
Affiliate Program Directory
http://www.jvnewswatch.com/
———-
Popular JVNotifyPro 2.0 Links
What Is JVNotifyPro 2.0/JVNewsWatch? (Start Here …)
JVNewsWatch JV Product Launch Calendar + Affiliate Program
Directory
http://www.jvnewswatch.com/
———-
That’s All, Folks!
To OUR Success,
Mike Merz
http://www.JVNotifyPro.Com
http://www.JVNewsWatch.com
http://www.JVListPro.Com
http://www.facebook.com/jvnotifypro.fan.page
http://www.twitter.com/jvnotifypro
The reason you are receiving this mailing is because
you requested to be on this email list by opting in.
Please use the unsubscribe link below if you no longer
wish to be a JVNP 2.0 Partner, not the Spam button.
The JV offers run in this newsletter and archived on
JVNotifyPro.Com express the opinions of the partners
that have presented them to us … and are not those
of Mike Merz, nor Internet Marketing For Newbies LLC.
Participate at your own risk.
The publicly accessible version of the JVNotifyPro Update
posted on JVNotifyPro.com may include affiliate links that
could result when purchased through in compensation
for either Mike Merz or Internet Marketing For Newbies LLC
for the sale as an affiliate partner … with no further
association to the merchant existing unless otherwise
mentioned.
JVNotifyPro 2.0 Updates are generally mailed twice a week
… on Monday/Tuesday and Thursday/Friday, with an
occasional Saturday edition when either there is a back
log, I screw up … or both. It is done this way to satisfy
the many premium mailing requests, while still respecting
your Inboxes by not over doing it. Thanks for your support.
When iOS started to gain momentum, soon after the first iPhone
launched, many businesses started to pay attention to apps. The
number of apps for iOS grew exponentially, and every company, big
and small, rushed to create their own app to support their
business.
For some time, iOS was the only platform you really had to care
about. The audience was there. For a few years now, there has
been another player in the market. Android’s marketshare
growth has been phenomenal, and it simply cannot be ignored
anymore. There are over 200 million Android users in the
world—almost double the numer of iOS users. For businesses,
reaching the Android crowds is potentially a very
lucrative investment.
Android as a platform can appear intimidating to new players.
Blogs and media are littered with articles about Android
fragmentation and malware. The Android platform can feel complex,
although it is very flexible. However, before getting started
with an Android project, understanding the platform and ecosystem
is imperative. Trying to apply the methods and tools that work on
other platforms could lead to disaster.
In this article, we’ll explain parts of the application-building
process and ecosystem for Android that could cause problems if
misunderstood. We’ll talk about an approach to building a
scalable app that looks and feels right at home on Android, and
we’ll cover how to test it and your options for distributing it.
The following topics would each need a full article to be
explained fully, but this article should provide a good overview.
After reading this article, you should have a good understanding
of what kinds of decisions and challenges you will face
when creating an Android app.
Make The App Scalable
Android devices come in many forms and sizes. The last official
count is that 600 Android devices are available, and that number
is growing every day. Building an app that runs on all of them is
more difficult than building for just one or two screen sizes and
one set of hardware. Fortunately, Android was built from the
ground up with this in mind. The framework provides tools to help
developers tackle the problem. But as with all tools, they only
work if used correctly.
Large preview.
An iOS app is designed and built by placing pixels at the proper
coordinates until the UI looks just right. Not so on
Android! Android designers must think about the scalability
of each component and the relationships between
components. The philosophy is much closer to Web app design
than to iOS app design.
A Continuum Instead Of A Separate Tablet UI
About half a year ago, Google rushed out the Android version
named Honeycomb (3.0). Honeycomb was aimed at tablets and was
never meant for anything else. The source code of Honeycomb was
never released, and it never officially appeared on any
phones. At the time, Apple had already established a practice by
which developers provided two separate versions of their app, one
for iPhone and one for iPad. Because of Apple’s model and the
separate Android version for tablets, everyone seemed to assume
that two separate versions of an app are needed on Android,
too. Soon, the Internet was full of blog posts complaining
that Android didn’t have enough tablet apps and that there was no
way to search for them on the Google Play store.
Now, as Android Ice Cream Sandwich (4.0) is unifying all Android
devices to run the same version of the OS, it all makes sense.
Android is a continuum, and drawing a clear line between tablets
and phones is impossible. In fact, checking whether an app is
running on a tablet or phone is technically impossible. Checking
the screen size (and many other features) at runtime, however, is
possible.
This is where Android design starts to remind us of Web design.
New technologies have enabled us to build websites that adapt
automatically to the user’s browser size by scaling and moving
components around as needed. This approach is called responsive
Web design. The very same principles can be used on Android. On
Android, however, we are not bound by the limits of the browser.
Responsive design can be taken even further.
Responsive Android Design
Android developers can define multiple layouts for every screen
of their app, and the OS will pick the best-fitting one at
runtime. The OS knows which one fits best by using definitions
that developers add to their layout (and other) folders in the
app’s project resource tree.
An example of the structure of layout folders, which
distinguish between screen sizes and Android versions.
Starting from Android version 3.2 — and, therefore, also on Ice
Cream Sandwich — a more fine-grained approach was introduced.
Developers may now define layouts based on the screen’s pixel
density, independent of size, instead of using only the few
categories that were available before.
An example of the new layout specifications based on screen
size. It is very similar to CSS’ media queries. Android’s
documentation has more details.
Using Fragments to Implement Responsive Design
Fragments are the building blocks of Android UIs. They can be
programmed either to be standalone screens or to be displayed
with other fragments; but the most powerful ones are both,
depending on the device that the app is running on. This enables
us not only to rearrange the fragments but to move them deeper
into the activity stack. Dan McKenzie has written about issues
related to designing for big Android screens.
Each component is itself stretchable and scales to screens
with similar sizes.
When a screen’s size is drastically different, the components
need to be rearranged. They can be rearranged on the same level
or moved deeper into the activity stack.
Make The App Look And Feel Android-Like
Consistency with other apps on the same platform is more
important for an app’s look and feel than consistency with the
same developer’s apps on other platforms. Having the look and
feel of apps from a different platform will make the app feel
foreign and make users unhappy.
(Remember to read Google’s Android Design guidelines.)
Tabs
In Android apps, tabs should always be on top. This convention
was established and is driven by Google’s design of its apps and
by guidelines from advocates of Android development. Putting the
tabs on top makes scaling an app to larger screen sizes easier.
Putting tabs at the bottom of a tablet-sized UI wouldn’t make
sense.
Large preview.
Navigating between top-positioned tabs on a phone with a large
screen can be difficult, especially when the person is using only
one hand. The solution is to enable the user to swipe between
tabs. This interaction model is not new, but in its latest
release, Google has made it commonplace in Android apps. All
bundled apps now support this interaction on tabbed UIs, and
users will expect it to work in your app’s tabbed screens, too.
Android UI Patterns Can Put Users at Ease
Some UI patterns have become popular on Android — so much so that
they are starting to define the look of Android apps. The action
bar, one of the most popular patterns, is now part of Android’s
core libraries and can be used in any app running on Android 3.0
and up.
Good third-party libraries are available to bring the action bar
to apps that run on older versions of Android. ActionBarSherlock
is very stable and supports multiple versions and even
automatically uses the native action bar when it detects a
supported version of Android.
Another popular UI pattern is the dashboard. Many apps with a lot
of functionality use the dashboard as their landing screen to
give users a clear overview of and easy access to the app’s most
important functionality.
Large preview.
Google Play (left) and Evernote (right) both put an action bar at
the top of their screens to provide quick access to contextually
relevant actions. Evernote’s landing screen clearly tells the
user what they can do with the app, while providing easy access
to those actions every time the app launches.
See Dan McKenzie’s article “Designing for Android” for more on
the look and feel of Android apps.
Integrate The App With Other Apps
The Android platform provides a powerful mechanism for apps to
extend each other’s functionality. This mechanism is called
“intents.” Apps can register to receive and launch intents. When
an app registers to receive intents, it must tell the system what
kind of intents it can handle. Your app could, for example, tell
the system that it can show pictures or open Web page URLs. Now,
whenever another app launches an intent to view an image or a Web
page, the user has the option to choose your app to complete the
action.
Large preview.
Social Network Integration
On other mobile platforms, if an app wants to share something to
Twitter, Facebook or another social network, it implements the
sharing mechanisms internally in the app. Sharing requires a
separate operation for each social network. On Android, this can
be achieved more easily using intents. An app may launch an
intent telling the system that it wants to share an image or
text. Depending on which apps the user has installed, the user
will be provided with a list of apps that can handle the
operation. If the user chooses a Twitter or Facebook client, the
client will open to its sharing screen with the text or image
prefilled.
Large preview.
There are many benefits to integrating with social networks using
intents rather than implementing sharing directly from your app:
Close to zero effort is required to build the functionality.
Users don’t have to log into a separate application. The
social network’s app takes care of logging in.
You don’t have to limit the social networks that users may
use to share from your app. All apps installed on the user’s
device are available to be used.
If a social network’s sharing protocol changes, you
don’t have to worry about it. That service’s app will be updated
to reflect the changes.
Users might be using an unofficial app for a social network.
Using intents, they may continue using their app of choice with
the interface they are familiar with.
The intents mechanism offers only options that the user
actually uses (i.e. the apps that they have installed). No need
to offer Facebook sharing to someone who doesn’t have a Facebook
account.
Think of Other Opportunities
Extending the functionality of other apps via the intents system
will benefit your app, too. Perhaps your app wouldn’t get used
every day and would get buried under apps that are used
more often. But if your app extends
the functionality of other apps and keeps popping up as
an option every time the user wants to perform an action that
your app can handle, then it will be thought of more by users.
Intents have limitless possibilities. You can build your own
intents hierarchy to extend certain functionality to
other apps, in effect providing an API that is easy to use and
maintain. You are essentially recommending to users other apps
that complement yours and, in turn, extending your app’s features
without having to write or maintain any code. The intents system
is one of the most powerful features of the Android platform.
Quality Control
With the massive number of devices, testing an Android app
is much more difficult than testing an iOS app. This is where the
fragmentation causes the most problems. Testing on one or two
devices is not enough; rather, you have to test on a variety of
screen sizes, densities and Android versions.
In addition to what you would normally test on any other
platform, you should the following:
Test your app thoroughly on the lowest Android version that
it runs on. Accidentally using an API that isn’t actually
available at runtime on some devices is easy.
Test that the search button works on all relevant screens.
Make sure that the D-pad and trackball navigation work on all
screens.
Test all supported screen densities, or at least extra-high,
high and medium. Low-density devices can be difficult to find.
Test on at least one tablet device. But try to test on as
many screen sizes as possible.
Testing in the Cloud
New services are popping up to ease the pain of testing on
multiple devices. Services such as Testdroid enable developers to
test their apps on multiple real devices through a Web interface.
Simply upload your app’s package and automated testing script,
and the service executes your scripts on dozens of devices.
Results can be viewed in a Web browser. Examining screenshots
from different devices is even possible, to ensure pixel-perfect
UIs.
Testdroid is a cloud service for testing Android apps on
multiple devices. Large preview.
Distribute The App
Once your app is tested and ready, you need to get it to users.
You’ll have to choose how to do it. Very few Android devices are
restricted to one app store. The overwhelming majority of Android
devices ship with Google Play, which is the most important route
to reaching users on the platform.
Google Play
The Google Play store doesn’t have a formal process for approving
apps. Any application package uploaded to Play will appear in the
store’s listings to users. App guidelines do exist, but they are
enforced only if there are complaints, and even then pretty
randomly. This means that your app will be swamped by hundreds of
other apps of varying quality.
So, how to rise above the masses and get the attention of users?
The first 30 days are important! Your app will appear in the
listing for new paid or free apps during that time. Ranking
relatively high in this listing during this time is much easier
than ranking high in the overall top lists. Make sure that
your app’s website links to Google Play from the start, and use
all social networks to tell people about your app’s launch.
Getting recognized as a trusted brand is difficult. Google Play
contains many apps that use registered trademarks without
permission. Users have come to learn that a logo is no indication
that an app was actually produced by that logo’s company. To
increase trust, make sure the “Visit Developer’s Website” link
points to the official website, and if possible link back to your
app from there.
Top new apps on Google Play. Large preview.
Making an app work on all devices is sometimes impossible. Some
devices lack the required hardware or simply run an old version
of Android for which the required APIs don’t exist. You can list
all of the requirements in the app’s manifest file, telling
Google Play which devices the app is meant for and, thus, hiding
it from listings that are being viewed on incompatible devices.
But sometimes even that isn’t enough. In these cases, Google Play
allows developers to prevent certain devices from downloading
their app. While this option should be used only as a last
resort, it is still better than allowing users to download
something that you know does not work on their device.
Alternative App Stores
Google Play is not the only place to distribute your app.
Amazon’s Appstore has lately gained attention due to the launch
of Amazon’s Android-based Kindle Fire tablet. Amazon’s approach
is fairly similar to Apple’s in that it has a formal review
process. The Appstore is also accessible to non-Amazon devices,
but currently only in the US.
Multiplatform app store GetJar also distributes Android apps.
GetJar has a lot of users and is a well-known and trusted source,
especially among people with not-so-smart phones.
Barnes & Noble’s app store is a US-only eBook-based app
store. Unlike Amazon’s, it is accessible only to B&N’s
Android hardware.
Multiple App Stores, Just One, or None?
Many people’s first instinct is to try to get their app into all
stores. This decision should not be made lightly, though.
Distributing through multiple stores might make the app reach
more potential users. However, being spread across multiple app
stores could prevent the app from ranking as high as it could in
the listings for downloads and ratings. Having a thousand
installations across three app stores might sound better than
having two thousand installations in one store, but maybe those
two thousand would push the app into a more visible spot in the
store and help it rocket to tens of thousands of installations
later.
An app doesn’t have to be in a store at all in order to be
installed on devices. Android apps can be installed directly from
websites or by transferring them from computer to phone. While
you wouldn’t reach the same audience and wouldn’t benefit from
the update mechanisms in app stores, there is definitely a place
for direct distribution. Using forums and websites, developers
can distribute their apps to alpha and beta communities without
having to risk their reputation or low ratings in an app store.
Distributing a major update or an unstable build to a limited
number of dedicated testers and fans might be worth the extra
effort.
Conclusion
Building a scalable and functional Android app is not impossible,
but it requires careful planning and an understanding of the
target platform. A blind approach or simply borrowing a design
from another platform would likely end in failure. Achieving
a successful end requires that you use Android’s tools
correctly and follow the right design approach. Writing an
Android app takes effort, but if done right, the app could reach
a massive numbers of users.
Further Resources
Intents:
OpenIntents: Registry of Intents Protocol
Supporting multiple screen sizes:
“Supporting Multiple Screens,” Android Developers
“Thinking Like a Web Designer,” Android Developers
“Deep Dive Into Responsive Mobile Design,” Pushing Pixels
What every affiliate needs? Ain`t that the best ClickBank
products, the products, which honestly make money? ClickBank is
the digi product market place, which measures the popularity of
every product and CB Mall helps affiliates to pick the success
stories.
CB Mall is a directory, which is made to help affiliates to find
the best ClickBank products from each category and it lists only
the top 10 best sellers per category. That makes the work easy,
plus the fact that The Mall is organized along the same directory
system as ClickBank digital product store.
An affiliate can pick the category and the digital niche product
from thousands of alternatives. This is important, because an
affiliate must be sure, that the choice fits to the business plan
and to the target group. And that he has a backgroung statistics,
which tells whether the product has a good track record, i.e.
that it will sell well.
1. CB Mall And The Best ClickBank Products.
CB Mall is a consumer oriented website, which wants to help an
affiliate to choose the sure selling digital product. It lists
the products in the order of popularity and only 10 per category.
This helps a lot, because to surf through hundreds of listings
and the key figures is a tough job. CB Mall lists only the best
ClickBank products.
Of course this does not mean, that the chosen product will sell
well on your website, but if it has sold well on many other
websites, it has a good opportunity to do that also on yours. The
product popularity means also that the brand is strong, which has
an important influence on the success potential.
2. CB Mall Follows The ClickBank Category System, But Lists Only
The Winners.
We could call CB Mall also as a directory of the hit products.
The listings of only 10 best products per category makes the
usage easier to the affiliate. CB Mall is also a search engine
and you can find products for your website strategy using the
keywords.
3. You Could Use A Low Cravity of 3 – 4.
The best ClickBank products can also be from the very competitive
categories and an army of affiliates sell those products. But if
you choose a product with a relatively low cravity, between 3 to
4, the competition can be much milder.
4. The Business Plan Still Rocks.
We have to remember, that the CB Mall is only a tool and the big
picture is always written into the business plan. Every choice
must support the business plan. So if your target group has
bought products from certain categories, they will continue to do
so.
5. Every Niche Has Its Own Strong Brands.
If the other marketers have succeeded to sell the product well to
a certain niche, you can succeed also. The important thing is,
that the product is a sure winner and that it fits to your
website strategy. It is not wise to pick a product, which is the
success story, but does not support your business idea.
About the Author
Juhani Tontti, B.Sc., Marketing. An Affiliate Needs CB Mall To Be
Able To Pick The Best ClickBank Products To His Site. Visit: Best
ClickBank Products
Use and distribution of this article is subject to our Publisher
Guidelines
whereby the original author’s information and copyright must be
included.
We always try our best to challenge your artistic abilities and
produce some interesting, beautiful and creative artwork. And as
designers we usually turn to different sources of inspiration. As
a matter of fact, we’ve discovered the best one—desktop
wallpapers that are a little more distinctive than the
usual crowd.
This creativity mission has been going on for over four years
now, and we are very thankful to all designers who have
contributed and are still diligently contributing each month.
This post features free desktop wallpapers
created by artists across the globe for June 2012. Both versions
with a calendar and without a calendar can be downloaded for
free. It’s time to freshen up your wallpaper!
Please note that:
All images can be clicked on and lead to the
preview of the wallpaper,
You can feature your work in our magazine by taking part in
our Desktop Wallpaper Calendar series. We are regularly looking
for creative designers and artists to be featured on Smashing
Magazine. Are you one of them?
Without Angry
"This bird is cool not angry ."
Designed by Tinjo Thomas from India.
preview
with calendar: 320×480, 1024×1024, 1280×1024, 1366×768,
1440×900, 1680×1050, 1920×1080
without calendar: 320×480, 1024×1024, 1280×1024, 1366×768,
1440×900, 1680×1050, 1920×1080
Hello Summer
"Flying people are saying hello to summer." Designed by Paul
Capcan from Moldova.
preview
with calendar: 320×480, 1024×1024, 1280×800, 1280×1024,
1920×1080, 1920×1200
without calendar: 320×480, 1024×1024, 1280×800, 1280×1024,
1920×1080, 1920×1200
Chromatic Baba
"Baba(sadhu) is the Hindu ascetic who has renounced caste, social
position, money, and authority and occupies a special place in
Hindu society.He absorbed all colors from a spiritual life,
devoid of material pleasure, mostly engaged in visiting holy
places." Designed by Yoshita Singhai from India.
"This piece pays homage to Mr. Roger Hargreaves, creative kids
author to such imaginative stories as Mr. Messy and my personal
favourite: Mr. Bounce.We utilized the ‘Curly Brackets’ and titled
each according to the font type that was used. Appropriate for
the month of June as we celebrate Father’s Day this month."
Designed by Pop Up Factory from Milton, Ontario, Canada.
with calendar: 320×480, 1024×768, 1024×1024, 1280×800,
1280×1024, 1440×900, 1680×1050, 1920×1200
without calendar: 320×480, 1024×768, 1024×1024, 1280×800,
1280×1024, 1440×900, 1680×1050, 1920×1200
Dreams
"This is the summer of dreams. Go get them!" Designed by Nandor
Tamas from USA.
preview
with calendar: 1280×720, 1280×1024, 1440×900, 1680×1050,
1920×1080
without calendar: 1280×720, 1280×1024, 1440×900, 1680×1050,
1920×1080
Friendly Fire
Designed by Roland Szabo from Hungary.
preview
with calendar: 1280×720, 1280×800, 1366×768, 1440×900,
1680×1050, 1920×1080, 1920×1200
without calendar: 1280×720, 1280×800, 1366×768, 1440×900,
1680×1050, 1920×1080, 1920×1200
June Romance
"Mark and Jenny Linn are, perhaps, the dreamiest and the most
romantic couple in the whole world. Their love story began in a
vintage San Francisco bookstore 5 years ago and continues till
the present day. In June Mark and Jenny usually arrange aspecial
dinner to watch the night sky and make a common wish for the
future, while watching the falling star." Designed by Maria S.
from USA.
preview
with calendar: 1024×768, 1024×1024, 1280×800, 1280×1024,
1366×768, 1680×1050, 1920×1080, 1920×1200
with calendar: 1280×800, 1280×1024, 1366×768, 1440×900,
1680×1050, 1920×1080, 1920×1200
without calendar: 1280×800, 1280×1024, 1366×768, 1440×900,
1680×1050, 1920×1080, 1920×1200
Africa
Designed by Cheloveche.ru from Russia.
preview
with calendar: 1024×768, 1280×800, 1280×1024, 1440×900,
1680×1050, 1920×1200
without calendar: 395×512, 1024×768, 1280×800, 1280×1024,
1440×900, 1680×1050, 1920×1200
Fruit Ninja Did This
Designed by Ioana Bitin (aka Yoot) from Romania.
preview
with calendar: 1280×800, 1280×1024, 1366×768, 1440×900,
1920×1080, 1920×1200
without calendar: 1280×800, 1280×1024, 1366×768, 1440×900,
1920×1080, 1920×1200
Basketball Nagraj
"Nagraj is an comic superhero in India. In this wallpaper you can
see Nagraj as a basketball. I made this a little fun because in
India June is a Holiday season for children." Designed by Sandeep
Virk from India.
preview
with calendar: 1024×768, 1024×1024, 1280×800, 1680×1050,
1920×1080, 1920×1200
without calendar: 1024×768, 1024×1024, 1280×800, 1680×1050,
1920×1080, 1920×1200
Retro Smile
"This is the retro photography of my aunt from 1964 photographed
in the beautiful village near the city Nis in Serbia." Designed
by Marija Zaric from Serbia.
preview
with calendar: 1024×768, 1280×800, 1280×960, 1440×900,
1680×1050, 1920×1200
without calendar: 1024×768, 1280×800, 1280×960, 1440×900,
1680×1050, 1920×1200
Vidovdan – Folk Festival
Designed by Tihomir Budic from BiH/Republika Srpska.
"After a busy year, we need a long vacation!" Designed by Gopango
Networks from Spain.
preview
with calendar: 320×480, 1024×1024, 1280×800, 1440×900,
1680×1050, 1920×1200, 2560×1440
without calendar: 320×480, 1024×1024, 1280×800, 1440×900,
1680×1050, 1920×1200, 2560×1440
Out Of The Box
"Release your creativity!" Designed by Ajan Navaratnasingam from
London, UK.
preview
with calendar: 1024×768, 1024×1024, 1280×800, 1280×1024,
1400×900, 1680×1050, 1920×1080, 1920×1200
without calendar: 1024×768, 1024×1024, 1280×800, 1280×1024,
1400×900, 1680×1050, 1920×1080, 1920×1200
Fete De La Musique
"La Fete de la Musique, also known as World Music Day, is a music
festival taking place on June 21, read more on wikipedia."
Designed by Sherif Saleh from France.
with calendar: 1280×1024, 1440×900, 1680×1050, 1920×1080,
1920×1200
without calendar: 1280×1024, 1440×900, 1680×1050, 1920×1080,
1920×1200
Illustration
"Vector hand drawing illustration of beautiful woman’s face with
flowers in her hair and floral pattern behind her." Designed by
Jane Lane from Russia.
preview
with calendar: 800×1210, 1024×768, 1024×1024, 1280×800,
1280×1024, 1680×1050
without calendar: 320×480, 1024×768, 1024×1024, 1176×735,
1280×800, 1280×1024
Euro 2012
Designed by Katerina Bobkova from Ukraine.
preview
with calendar: 320×480, 1024×768, 1024×1024, 1280×800,
1440×900, 1680×1050, 1920×1080
without calendar: 320×480, 1024×768, 1280×800, 1440×900,
1680×1050, 1920×1080
Paris Summer
Designed by Martina Pitбkovб from Slovakia.
preview
with calendar: 1024×768, 1280×800, 1280×1024, 1440×900,
1680×1050, 1920×1200, 2036×1440
without calendar: 1024×768, 1280×800, 1280×1024, 1440×900,
1680×1050, 1920×1200, 2036×1440
Join In Next Month!
Please note that we respect and carefully consider the ideas and
motivation behind each and every artist’s work. This is why we
give all artists the full freedom to explore their
creativity and express emotions and experience
throughout their works. This is also why the themes of the
wallpapers weren’t anyhow influenced by us, but rather designed
from scratch by the artists themselves.
A big thank you to all designers for their participation. Join in
next month!
What’s Your Favourite?
What’s your favorite theme or wallpaper for this month? Please
let us know in the comment section below.
Welcome To The JVNotifyPro 2.0 Joint Venture (JV)
Marketing Community
The Net’s Most Popular JV Marketing Partnership Site
Since 2005. Interact In The JV Forums, Create Or Join
A My JV Circle Social Networking Group, Learn From Our Featured
Contributor Training Content, Get On Board The Latest JV
Product Launches, Rolling Launches + Affiliate Programs … Or
Use Our JVNewsWatch JV Offer Submission Wizard To Post Your Own
JV Offer … Absolutely Free To Join.
Registration Includes A Gratis Subscription To Our Ever
Popular JVNP 2.0 Update Newsletter, Published
Continuously Since 2004 By Well Known JV Broker, And
JVNP 2.0 Owner, Mike Merz Sr.
Our Goal Is To Make It Possible For You To Attract More
Quality JV Partners, By Providing An Atmosphere
Conducive To Building JV Relationships, And By Helping
Make You A Better JV Marketer.
To OUR Success,
Mike Merz Sr Owner/Admin – JVNotifyPro 2.0 Featuring
JVNewsWatch
*****
It is expected and recommended that you perform due diligence
when getting involved in any venture that may affect you, your
business, it’s prospects and customers.
It’s also assumed that, as an Online Business Owner, you’re
capable of running your own business using common sense, logic
+ exercising personal responsibility.
*****
Here’s A Sampling Of The Popular New Product Launches
JVNotifyPro 2.0 Featuring JVNewsWatch Has For You In June 2012.
You Must Be Logged In To Access The JV Invite Pages On The
Calendar Below. Please Log In Here. Not A JVNP 2.0/JVNW
Partner? Join Here … Free. Your Upcoming Launch Isn’t Listed?
Click Here
New Product Launches + Joint Venture Announcements Has
Been Moved To http://www.JVNewsWatch.com
If there’s one thing small business owners lack, it’s time. You’d
like to reach your audience more effectively, but you don’t have
the time. Which is why solutions like autoresponders are
attractive solutions for your email marketing.
But isn’t email marketing all about building relationships with
your customers? Doesn’t running an automated campaign make your
marketing less personal? Not necessarily.
A session on automated email campaigns at MarketingSherpa’s Email
Summit 2012 presented tactics for automating your campaign to
save time without sacrificing the personal connection
consumers have come to expect.
Here are four simple ways to save time with an automated campaign
that still feels personal.
Build Rapport With a Conversational Tone
The language you use influences the kind of connection you build
with your customer base. If your tone is friendly, your readers
will feel more personally connected to you.
We ran a case study on an AWeber customer who uses conversational
language in her automated follow ups and achieves high open rates
and click throughs as a result. Jermaine Griggs – the presenter
who discussed these tactics at the Email Summit – uses such a
friendly voice in his emails that even his own grandmother
doesn’t realize that his whole campaign is automated. Now
that’s effective content marketing!
Keep these points in mind to make your follow ups feel more like
a conversation:
Write your emails like a real person.
Remember, the addresses on your list belong to real people.
When you sound more like a real person and less like a
marketer, the people on your list will respond to your messages
better.
Have a real conversation with your customers.
Sonia Simone of Copyblogger spoke at the conference about her
own autoresponder series, which invites subscribers to reply to
her messages with their feedback and other comments. Invite
real conversation with your own customers by sending your
automated emails from a real address than can accept replies
(not a “noreply” address) and answer them as you can.
Harness the Power of Anniversary Emails
Acknowledging the anniversary of when a customer joined your list
is an easy way to make an automated campaign feel personal. You
probably can’t keep track of the date each customer signed up,
but your follow up series can remember for you. Reward your
customers for their loyalty with a coupon or free download and a
message that feels personal.
Decide on your time frame – three months, six
months, one year? – and set a follow up with the appropriate
interval.
Use a
personalization variable to automatically reference the exact
date a customer signed up. Your automated anniversary message
will send itself to your subscribers on their own anniversary, as
the timing of a follow up series is based on when a subscriber
signs up. That means limited work for you while still maintaining
a personal connection.
Use Evergreen Content
As you create your automated follow ups, focus on content that
customers will find useful for a long time to come. Marcus
Sheridan – an entrepreneur, small business marketer and AWeber
customer – recommends paying attention to the questions your
customers frequently ask, along with the search terms that bring
the most traffic to your web site. Address these questions in
your automated campaign for content that will feel fresh and
relevant for customers who sign up now or a year from now.
Think about other helpful content on your site that you can
repurpose for your campaign. This doesn’t mean directly copying;
rather, it’s reworking what you have readily available. Things
like:
Your web site’s FAQ
Tutorials for your
product or service
Instructive blog
posts
Print materials
re-worked for your email campaign
Repurposing content that doesn’t go stale keeps your conversation
with your customers feeling fresh no matter when they join your
campaign.
Don’t Always Follow the Crowd
Building a campaign that feels personal means expressing your
brand’s personality. Sometimes injecting personality means
breaking best marketing practices in your industry.
Personality is easier for businesses that market directly to
consumers, but that doesn’t mean business-to-business companies
should be left out. Your services might be geared toward other
businesses, but your emails still go to people who make
the buying decisions. Your business can build rapport by striking
a balance between friendly and professional in your emails.
It all comes down to tone and what your readers respond to, which
you can tell by how many of your customers open and click through
your emails. People who are engaged with your emails will open
them and click through to your site more often.
Experiment with the tone you use in your
emails. Split test a broadcast message – one version
with a professional tone and one with a friendlier tone. Stick
with the version that gets the most response from your readers.
How can you tell
what your customers respond to? Pay attention to your
opens and click through rates. When your customers
appreciate your content, they’ll open your emails more frequently
and click through to your site content.
If you’re getting good results, keep it up, regardless of what
other businesses in your sector are doing. Sometimes different
can resonate with your customers on a more personal level.
What Have You Tried?
How do you balance saving time with automated emails while
keeping a personal connection with your customers? Have you tried
any of these techniques successfully? Share your stories in the
comments.
Never doubt that a small group of thoughtful, committed
citizens can change the world; indeed, it’s the only thing that
ever has.
- Margaret Mead.
It’s a tough economy, ever-present ads are tough to stand out
from and online marketing makes global competition tough to beat.
Marketing an organization is tough right now. Marketing a
non-profit is even tougher. But we know a little business,
Dreams4Kids, that’s even tougher than these challenges.
All the money that they bring in goes to help at-risk and
disabled children. That’s also where most of their staff’s time
and energy go as well.
But They Had a Dream
Dreams4Kids knows that to help these children, they need to raise
support. That means they need to get the word out about their
programs to those who might be interested in helping. They also
must communicate with previous donors to show what their
involvement has accomplished and invite future donations.
So about 10 years ago, they started marketing their organization
via email. “People are very email-oriented now,” says Shelly
Gonsch, Vice President of Operations. “They just ignore regular
mail.”
The original plan was to keep in contact with donors and
potential donors by sending a newsletter every two weeks. They
felt that was a good timetable for customers to hear from them.
Sometimes Dreams Clash With Reality
As a nonprofit, Dreams4Kids is continually skimming the edge of
“just enough.” This means they’re sometimes shorthanded, without
someone available to get the email out as often as they planned.
Instead of scrapping their email campaign altogether, they
adjusted their dream. They determined that monthly newsletters
fit their staffing needs. So, “that’s our goal, now,” Shelly
says.
And it’s a good place to be. But for such a limited staff and
budget, it’s still a challenge to pull off.
Sometimes You Need Help to Make Your Dreams Come True
Dreams4Kids needed to build an audience for their email
newsletters. So they’ve established a presence on major social
media networks: Facebook, Twitter and LinkedIn.
“You need to get social media going,” Shelly says, “Get awareness
going and people will start reaching out to you. Then you can
work on getting them into your database.”
Once their accounts were set up, they needed people to manage
them. A board member monitors their accounts on HootSuite. An
intern helps put content out through their social channels.
As for their email campaign, Tom Tuohy, the president and
founder, has actually been putting together many of the
newsletters himself. An assistant does the work of getting new
subscribers imported into their email list.
Click to enlarge
If It’s a Good Dream, It’s Worth Fighting For
And this is a good dream. Dreams4Kids has an important mission,
and they’re trying to market it the best way possible.
“Our email is really a newsletter,” Shelly says, referring to the
quality of content they send. “We try to stay away from email
‘blasts.’” The newsletter presents Dreams4Kids’ recent events and
initiatives, as well as events by related organizations.
We’re proud that they’re customers; we’re proud of their mission
and we’re proud of their emails.
How Do You Make Dreams Come True?
As a marketer, you may have developed some of your own creative
ways to manage limited time and resources.
Would you, like Dreams4Kids, share them here for others who are
fighting the uphill battle to make a difference?
If you’re inspired by the mission of Dreams4Kids, you are
welcome to make a donation, volunteer your time or subscribe
their newsletter here.
Today’s post is a guest post brought to you by Outright.com,
the easiest way to manage your small business finances online for
a less taxing tax time!
~~~~~~~~~~~~~~~~~~~~~~
Online selling can be tough enough without throwing in a monkey
wrench. But of course those monkey wrenches are bound to come at
some point. One wrench you can learn to dodge, though, is the
quarterly estimated taxes you owe every few months.
But you can only dodge that wrench if you know what it is!
There is so much to contend with as an online seller, and if
you’re new at the game it can even be a nightmare trying to get
everything in order – especially your financial house. Make it
easier on yourself (at least by a bit) by reading on for
Outright’s handy guide to quarterly estimated taxes.
Quarterly “Estimated” Taxes
The important word here (besides quarterly and taxes of course)
is “estimated.” This is why these taxes are different from
regular taxes someone who works at a “regular job” pays. The
United States income tax is a “pay as you go” tax. When a W-2
employee works a set number of hours, they get a set amount of
taxes taken out to pay to the state and federal. There’s very
minimal work involved for the W-2 employee in this situation. All
he really has to do is sigh at the amount he sees taken out of
every check.
But for online sellers it’s very different, and way more work.
Your taxes aren’t automatically taken out of a paycheck, which
means you need to pay them in yourself. And this is where the
“estimated” part comes in.
Luckily it’s not the most complicated thing in the world, and if
you’ve ever done taxes more complicated than a 1040EZ you should
have an idea what to do. Basically you need to figure out how
much money you’ve made during the year off of online selling.
After that, you take your deductions and such into account to try
and lower the payment. Once you’ve figured out what you owe in
taxes for the year, divide by four and you’ve got your first
installment. Of course, that’s where the estimated part
comes in. If you’re an online seller, you may anticipate a huge
holiday season, but how are you to know that here in June?
Fortunately, if you pay in the same amount you owed in taxes last
year, you won’t find yourself penalized at the end of the year.
So if your federal tax liability was $ 1,000 in 2011, if you pay
four quarterly installments of $ 2500, you will avoid IRS fees
and penalties.
Timing
So how many times a year do you have to do all this mess? Since
they’re “quarterly” payments, you’ll have to do these
calculations four times a year. The first quarter isn’t in the
beginning of the year; it’s actually in April, the same time when
you’re filing and paying in your federal taxes. Here are the
dates you’ll have to contend with as an online seller:
Quarter 2: June 15th
Quarter 3: September 17th
Quarter 4: January 15th, 2013
Then the whole shebang starts over in April when you pay in your
taxes next year.
Sound like a lot of work? If you keep up a good filing system
(including Outright to track your invoices and expenses) and make
sure your paperwork doesn’t get out of hand. Keeping a constant
idea of how much money you’ve made and how much needs to be taxed
will make your quarterly estimated tax payments much easier to
bear.
Does all this still sound like a humongous pain in the neck?
You’re not alone. That’s why Outright estimates your federal
quarterly estimated taxes owed. Import your bank accounts,
PayPal, and credit cards into your free Outright account, then
head over to the Taxes tab to check out what you owe. (Keep in
mind we can’t predict your tax credits – such as childcare or the
earned income credit – so our estimate will err on the side of
paying more and keeping you out of trouble with the IRS.)
If you have more questions, check out this Quarterly Estimated
Taxes Q&A or head over to the Outright Community to ask for
help from our expert accountants about your specific situation.