Published on March 25, 2025
After reading this article, you’ll: Understand the differences between low-fidelity and high-fidelity wireframes, including when…
Read More
Published on March 16, 2025
After reading this article, you’ll: Understand why creative branding is crucial for mobile app success…
Read More
Published on March 3, 2025
After reading the article, you’ll: Understand four cornerstone strategies for scalable backend architecture—cloud infrastructure, microservices,…
Read More
Published on February 26, 2025
Integrating Voice and Chatbot Technology into Mobile Apps After reading this article, you’ll: Understand the…
Read More
Published on February 25, 2025
After reading this article, you’ll: Understand the significant impact of video and live streaming on…
Read More
Published on February 13, 2025
Securing Your Mobile App’s API: Why It Matters and How to Do It Right After…
Read More
Published on February 5, 2025
After reading this article, you’ll: Understand the vital role of data-driven decision-making in mobile app…
Read More
Published on January 30, 2025
After reading this article, you’ll: You’ll discover how clear, well-structured documentation not only streamlines collaboration…
Read More
Published on January 29, 2025
After reading this article, you’ll: Understand the various biometric authentication methods available for mobile apps,…
Read More
Published on January 15, 2025
After reading this article, you’ll: Understand the fundamental differences between refactoring (making incremental improvements to…
Read More
// Add original row class to side image sections
$('section.side-image').each(function() {var rowClass = $(this).find('.wpb_row').first().attr('class').split('vc_row-fluid').pop().trim();$(this).addClass(rowClass);});
// Highlight portfolio in navigation on project pages
$('body.posttype-portfolio').find('#menu-navigation a[href*="/portfolio/"]').parent().addClass('current-menu-item');
// Highlight services in navigation on services pages
$('body.parent-pageid-12').find('#menu-navigation a[href*="/app-development-services/"]').parent().addClass('current-menu-item');
// Copy tab titles into content for responsive view
$('.wpb_tabs .ui-tabs-anchor').each(function() {$( '.wpb_tab' + $(this).attr('href') ).prepend('' + $(this).html() + ' ');});
/*if (jQuery('.portfolio-page').length > 0){*/
/*portfolio-template-default*/
if (jQuery('.portfolio-template-default').length == 0){
$.fn.extend({
animationend: function(callback) {
return this.one('webkitAnimationEnd mozAnimationEnd oAnimationEnd oanimationend animationend', callback);
},
initWaypoint: function() {
return this.addClass('waypoint')
.removeClass('animated')
.waypoint2(function(direction) {
//console.log(this.element)
$(this.element).addClass('animated');
this.destroy();
}, {
offset: '80%'
});
}
});
}
if (jQuery('.portfolio-template-default.single-portfolio').length > 0){
setTimeout(function () {
jQuery('.page-header h1.waypoint, .page-header p.waypoint').addClass('animated');
}, 1000);
}
if ( window.matchMedia('(min-width: 481px)').matches ) {
var waypoints = null;
var $waypoints = $('.waypoint');
var waypointSelectors = {
'common': [
$('section.vc_row').has('.lead').find('h1, h2, .lead, .btn'),
'[class*="vc_col-"]:not([class*="-12"])',
'section.side-image .image-container',
'section.text-intro h2',
'section.howwework-preview .wpb_tabs',
'section.publications .col-sm-4',
'section.featured-projects .rev_slider_wrapper',
'section.landing-location-intro .wpb_text_column'
],
'home': [],
'app-development-services': [
'section.services-slider',
'section.services-specialities'
],
'portfolio': [
'.portfolio-showcase [class^="col-"]'
],
'about': [
$('.team-member')
],
'landing': [
'.posts-container .col-sm-6'
],
'staging': [
'.section-clients-v2 .col-sm-3'
]
}
var pageSlug = window.location.href.split('/');
if (pageSlug.length > 4) {
pageSlug = pageSlug[pageSlug.length - 2];
} else {
pageSlug = 'home';
}
_.every(waypointSelectors, function(selectors, page) {
_.each(selectors, function(selector) {
$waypoints = $waypoints.add(selector);
});
if (page === 'common' || page === pageSlug) {
_.each(selectors, function(selector) {
$waypoints = $waypoints.add(selector);
});
if (page === pageSlug)
return false;
}
return true;
});
waypoints = $waypoints.initWaypoint();
}
var archiveCurrentCategory = null;
var categoryPostsCache = {};
var postWaypointContext = null;
var $archivePosts = $('.archive-posts');
var $postsContainer = $archivePosts.find('.posts-container');
var $postsContainer2 = $('');
function handleHover() {
var category = $(this).data('category');
// console.log('hover detected')
if (category === archiveCurrentCategory) {return;}
$(this).addClass('active')
.siblings().removeClass('active');
category ? loadPosts(category) : resetPosts();
archiveCurrentCategory = category;
$('.news-subnav a').one('mouseover click', handleHover);
}
function loadPosts(category) {
var cachedPosts = categoryPostsCache[category];
if (cachedPosts) {
$postsContainer2.html(cachedPosts);
showPosts();
return;
}
$postsContainer2.load('/category/' + category +'/ .posts-container', function(html) {
$postsContainer2.find('.col-sm-6').initWaypoint();
showPosts();
categoryPostsCache[category] = $postsContainer2.find('.posts-container');
});
}
function showPosts() {$archivePosts.addClass('show-container-2');}
function resetPosts() {$archivePosts.removeClass('show-container-2');}
$postsContainer.after($postsContainer2);
$('.news-subnav a').one('mouseover click', handleHover).first().trigger('mouseover');
});})(jQuery);-->