The main idea is to split the code into 2 sets of classes: Models and Views. A Model is responsible to handle all data of specified component. It loads, saves and represents it for a View. A View is rather a controller to handle UI, render widgets and specify actions for a Model to provide any changes. You can use any front-end HTML templates system within Backbone Views.
As I said above, Backbone is just a set of approaches to organize complicated project in robust way and a bunch of source code to help with it. On the other hand, it doesn’t cover all Application Development aspects on the client side. A lot of standard things should be implement by hand. Wait, it doesn’t look like good idea. There is Marionette [http://marionettejs.com] framework available as solution. So, you can stay away of reinventing the wheel and spend time on business logic and cool visual features. Marionette simplifies your Backbone application code with robust views and architecture solutions, provides lists, layouts, subviews and communication between components.
HTML5 mobile applications
Alternatives, pros and cons
Nowadays, search engines impose much more strong requirements for web sites to be ranked on top positions or even be parsed at all. Fast rise of mobile market pushed sites to be responsive to all kinds of screen widths and input schemas. But it’s not just about support mobile devices. For any Content Management system there is very important to load the pages as fast as possible. It’s not a recommendation anymore, but rather a rule. Google and other search engines may ignore your cool web site with a bunch of modern features just because it’s too slow.
Check loading speed online
First of all, check how fast is your page loading by Google’s PageSpeed test [https://developers.google.com/speed/pagespeed/insights/]. After several seconds you’ve got pretty complete report about issues at line of loading speed and suggestions how to improve it. If you receive green checks, congratulations, you are doing Content Management in right way. As it’s a Google’s service, so we can look at this list of points as optimization plan for Google Search Engine. On the other hand, the issues and methods to solve them are common for any search engine and for user experience as a whole. There are two separated modes (workflows) of analysis: for regular usage via PC’s browser and exploring on mobile devices like smartphones.
Resources loading optimization
Use browser cache
Both most popular web servers (apache and nginx) support expire technique. Add appropriate configuration for mod_expires section in the settings of your web application. For better structure separate expiration settings into 3 parts: images cache, fonts cache and content cache. Be careful the fonts cache. If you set up wrong path to fonts, then you need to reset the cache after correction to clear the LocalStorage.
One more important thing CMS developers may forget is images compression. There is a web site tinypng.com to compress both png and jpeg images online and appropriate plug as well. To optimize images loading, join several pictures into a single sprite, then use appropriate fragment via CSS. Well, so complicate workflow makes Content Management as bit harder, but it reduces number of requests to the server. It’s important to speed up whole page loading.
You have mapped out the best SEO strategy, you have conducted your analysis and adjusted your campaign accordingly, and yet you are finding that your goals with the SEO engines aren’t effective?
The reason behind poor SEO performance is that you might have failed to take your SEO competitors seriously. Obviously you cannot monitor all of your competitors, but you can have an eye on the ones that are most likely affecting your SEO performance.
Here are some steps on how to go about analyzing them.
1. Get to know them
Who are your main SEO competitors? If you run a small off line business you probably know them already, but if your business is well placed in the internet world, then you can run a search using the keywords you utilize for your SEO. Look who is popping up in your search queries. How do they add up in terms of keywords? Make a list of the ones that have the highest percentage of relative keywords or long tail keywords.
2. Check and analyze their websites
Check their websites and find out how they utilize their keywords. Is the copywriting different than yours? Do they gather the keywords in some specific descriptions, are they spread throughout their site? How is the quality of their content compared to yours? Are they using dynamic URL’s and so on?
3. What keywords are your competitors utilizing?
Proper use of keywords is at the core of a successful SEO strategy. Your competitors are utilizing their keywords in a manner that gives them the advantage over your site. Check to find out what their keywords are first. Do they match your keywords? If you don’t know what keywords they use, try to figure out if they use your keywords.
Here you can use our Keywords Tools (Keyword Analyzer, Keyword Research etc.) to see which keywords are supposed to perform well on their site, and to figure out the percentage of their keywords appearing in bold or prominent place in their site.
A sound basis of backlinks is a fundamental element of an effective SEO campaign. Check your competitors’ website to see for example the total number of links, the number of unique domains, the anchor texts, linking domains vs total links etc.
5. Page ranking
Along with the keyword and backlink analysis, look at how your competitors’ pages are ranking in different search engines. PageRank, even though a bit outdated, will evaluate the quality of their website in terms of links giving you a good idea about their structure and how you can modify yours as well.
6. Social Media
Any company that respects itself will have a strong presence on Social Media which is an excellent source of traffic. These sites are usually the best way to increase traffic volume, so check their presence in their Facebook page and pay attention to the headlines they use, the content of their posts, and the category they are in. You can also do the same with Twitter, Google+ etc. Although, the majority of the times you have to be friends or followers to have access to the entire content, some section will be accessible and that will give you a good idea.
7. PPC ads
PPC ads are probably one of the cheapest ways to increase and drive quality traffic to your site. PPC ads are quick and effective and will direct visitors to your site that are specifically interested in your products. How are your competitors using PPC ads? What is the amount of keywords they are using in them? You can use a variety of free and paid tools to see how your PPC ads are performing compared to your competitor’s.
Monitoring your competitors in search engines might be a time consuming process, but given a constantly changing market, your time and effort in analyzing and adjusting your site based on a step-by-step analysis, will pay off big time in the long run.
Any new idea needs rapid prototyping. In case of startup, it is both important to reduce costs and have done current development iteration as soon as possible. Generally, there are tools to help you move this way. Bootstrap [http://getbootstrap.com] is a must-have solution, when we are talking about fast web design and prototyping, but want to avoid wasting our time on standard Usability and UI design.
Modern web has a responsive design. Bootstrap version 3 was built for Mobile-first web design approach. It means, we start with creating of look-and-feel for small smartphone display, then extend the view for more wide screens of tablet and desktop. Grid system supports special scheme of CSS classes for providing various layouts for different screen width. We can easily show and hide some elements for specific width. Navigation bar in the header of the page has responsive behaviour as well. It provides nice set of buttons for the desktop resolution and correct drop-down menu system for mobile screen width.
Beyond the framework
Nowadays, Bootstrap is not just a framework. There is close integration with another popular web libraries like jQuery, AngularJS, Ruby on Rails, etc. There are even commercial online services like Jetstrap and Divshot, that provide ability to sketch any page or even whole web site design based on Bootstrap without any coding at all by drag-and-drop technique of their pure visual editing tools. Bootstrap may be used as solid component integrated into your web project as is, or built in custom way by LESS or SASS preprocessor. LESS is used by default. Bootstrap supports themes concept. All pure visual features (like fonts, colors, borders, etc.) are placed into separate file, so you can change it without touching the core, or even download third-party Bootstrap theme from Bootswatch site [http://bootswatch.com].
There are plenty variants can be used instead of Bootstrap to success in Usability and UI design. Zurb Foundation [http://foundation.zurb.com] is the most advanced responsive front-end framework at line of its customization abilities. Web developer doesn’t stick to the framework so close, as he have to in case of Bootstrap. There are more abilities to create custom look-and-feel with irregular behaviour, use any custom UI controls, integrate additional library or framework. On the other hand, a lot of even standard components you have to implement by hand. So, you better think twice when you choose front-end framework for your next web project. If it is a long term project and your art team have already approved templates with original complicated UI/UX features, you better use Foundation framework or even implement pages by pure HTML/CSS. In opposite case, if you need to have things done as soon as possible, you rather use Bootstrap.
API turns a service into a platform:
Nowadays, largest commercial services, such as Twitter, LinkedIn, Facebook, provides API for their models and services. They opened their platforms to be extended by huge community of software developers around the world. If one user of a service costs one unit, then single developer contributing into the architecture has value ten times more. This is true for full range of Application Development approaches from simple customization scripts to huge business based on complicated systems. API and its ability to extend and create attracts and even inspire the most creative specialists. This is a two-way street. On the one hand, developers and entrepreneurs have ability to grow up their own ideas into a successful business using existing cool service and its community of users, on the other hand, a service may acquire additional features without extra efforts. Users or hired API developers would design and implement specific features for their own needs. API looks like one more communication channel between customers, service and community as a whole. It is a way to show what they really need. API is a next-level step in the project evolution. It is a point where system may become a platform rather than just a service.
Internet of things:
Internet of things is a new trend in IT. It is the case when we talk about machine or system is connecting to the server or another software instead of real user. There are robots, smart gadgets and regular computers. It is not the whole list of such examples. Modern Application Development should be able to provide suitable interface for both the man and the machine, meaning a program running in another process or system installed on another continent.
OAuth and additional information:
Social networks provides ability to integrate authentication via their huge base of users for third-party services. On the other hand, users may avoid a double login process on services they need by passing only authentication on the social network only. In this case, a custom service obtains additional information about a user, he or she granted access for, like age, gender, interests, friends, etc. Such information is very important for any business at line of marketing.
REST as API standard in Web:
Technically, API may be integrated into the client application as module compiled into solution, be accessed via one of IPC methods on the same system locally, or be connected via network. In case of Web Application Development, we have to stick to third variant. REST [https://en.wikipedia.org/wiki/Representational_state_transfer] is trend technology to design and implement API from scratch or integrate into existing domain model. By HTTP protocol using, it treats HTTP’s request verbs (GET, POST, PUT, DELETE) as actions should be applied against objects addressed in the query string of HTTP request. Data is going between client and server may be represented in any suitable format, like JSON, XML or even plain text or pure binary. All main web development platforms and even micro frameworks provides well-known libraries to implement REST interface, write tests for it and run UI console to debug all its end-points.