PHP has a large footprint in the web development community. With over 80% of all existing websites running on PHP code, we can confidently say that PHP has become a ubiquitous phenomenon in web development.
A major reason for many developers choosing PHP is its wide range of developmental frameworks.
PHP frameworks enable you to build websites and apps of all sizes and complexity levels without having to start from scratch.
So, the massive growth of PHP-based web development can be rightly attributed to these excellent frameworks.
But, then again, the real question is which PHP framework is best suited for your needs.
While choosing the best framework can be subjective and based on your particular needs, there are few qualities that make a framework the best choice in many cases.
Yii and Zend are two frameworks with such amazing features and capabilities.
So, here is a brief overview of both these frameworks to help you decide which is the best one for your MVC development project.
Yii has been a popular choice among developers to develop large-scale and secured applications.
It was launched in 2008 and is one of the oldest PHP frameworks still going strong. Yii 2.0 is the latest version available.
This framework is suitable for developing secure applications with complex workflows. It is also great for developing CRM and CMS applications.
Yii is a high-performance, component-based PHP framework that is designed to make your MVC development fast and easy. It is flexible and includes a variety of features, including:
- Integration with jQuery,
- Gii module – a built-in code generator, and
- Active record – the ability to access databases as either Data Access Objects or as Active Records.
It has many other attractive features as well, such as caching, role-based access control, scaffolding, testing and authentication.
In addition, Yii has an active community that can help you with easy maintenance and support. The documentation of its code library is also good.
- A major downside, as reported by many beginners, is that it can be a little difficult to get started with Yii.
- Yii relies heavily on static methods and this may cause code complexities.
- Managing code for large platforms and sites can be difficult and you have to be extra careful in using Yii in such cases.
Zend has been a constant favourite for many developers and has been upgraded into the Zend 2.0 version. Many corporations, such as BBC, BNP Paribas and Cisco WebEx, use Zend in their projects.
Some of the great features of Zend 2.0 are:
- Modular approach – enables reusability and better flexibility,
- Service manager – a layer that returns objects as requested to be used in your own factories,
- Event manager – lets you attach and detach even listeners, handlers, trigger events and interrupt execution, and
- PHP composer – maintains the project libraries and version management.
Zend can also be used on a piecemeal basis: Certain components of Zend can be used in a Yii-based web application.
It follows a use-at-will architecture and has minimal interdependencies among its components.
It further supports multiple database systems and email delivery systems.
This framework gives you complete control over every feature and customisations are very easy. When the project involved is simple, development using Zend can be very fast.
However, for larger projects, using Zend tends to take longer.
Zend has a reputation for being hard to learn. But, in case of documentation, Yii seems to have better credits. The configuration options are also complex.
Let us take a closer look at the specialties of each framework to better understand them.
So which one are you going to pick? Do you have any questions or points to add here? Please feel free to leave your comments below and thanks for reading!
Turning your mobile website into an app for a greater reach to users is not an easy task.
However, before you take the leap, you have to thoroughly weigh its benefits and consciously choose to migrate your website to a mobile app.
Previously, mobile websites were more predominant when browsers dominated the launch of many new eCommerce start-ups.
Browsers made the websites seamlessly fit in all kinds of handheld devices and users found it exciting to buy stuff on the internet using their mobile devices. The availability of the internet and the evolution of HTML to support rich media also enabled this transition.
So, many ventures have started to launch mobile websites to attract their consumers and thereby increase revenues.
With the present era of mobile devices being dominated by the app ecosystems, the prevalent question becomes whether or not mobile websites are indeed mobile and meeting its purpose.
Apps have been making inroads on many users’ lifestyles and its adoption for business is seen as a positive trend.
There are many benefits for businesses to migrate from the traditional browser-based mobile commerce sites to the mobile app ecosystem.
A few of these benefits are listed below to aid you in making a conscious decision to follow the trend.
Mobile apps are written on the handheld devices’ native operating systems, while the websites run on a browser and always depend on an internet connection to work.
So, apps are much faster than the mobile sites. This plays a critical role if you do not want to lose your customers due to a slow connection while waiting for the page to load.
An app can be designed more efficiently so that it performs all the processing offline and only accesses the internet when it is needed to close the transactions.
For a business to succeed, availability is a vital factor. If your website is down for a while or if your users find it too slow, then the revenues will start to dwindle.
The availability of mobile websites greatly depends on the availability of the internet for every little bit of work that it has to perform and for the pages to load.
However, apps work much to the advantage of the users because it can download the required content when there is the internet and can perform all the other processing using the handheld device.
This makes the user feel as though he/she is connected to your business all the time. It is magic that allures your users to ensure a greater reach and greater revenue for your business that has been running on mobile websites.
A mobile website’s major goal is to educate users and market a product line on the web. However, apps have the ability to offer personalised services.
For example, if a mobile browser-based shopping site rolls out personalised services to users, then databases in the back-end is required for millions of users who access the site and the access to the site must be ensured quickly to cater to the needs of an online shopper.
However, apps keep the personalised information within the client device and perform their intelligence to fetch only the needs of the shopper!
Thus, it is much easier and quicker for apps to roll out personalised and customised services to its users.
Easier to Use
On the one hand, mobile websites typically run on a browser and require the browser to have updated plugins to play the content as per the definitions of the URL pages. The sites also have to fit all the different sizes of the different screens of the handheld devices.
Furthermore, rendering is an important challenge in HTML-based style sheets. On the other hand, apps understand the device in a better way to get the best performance out of it because they are written using the native interface of the underlying hardware.
This is evident in gaming apps where the graphics and the memory are more critical to ensure the best user experience. Mobile websites cannot match apps in the world of gaming.
Apps offer a much more interactive experience to the user than mobile websites do. This is because apps understand the user of the device and roll out personalised services.
By being interactive, the user is provided with a rich experience of shopping or gaming using the app on his/her device. This increases the engagement of the user with the app.
Also, due to the real-time speed and offline processing capability, an app can bring this interactive feature more effectively than mobile websites that run on browsers.
Tools to Aid the Migration
Now that you are convinced and ready to move to a mobile app, take sufficient care to have a smooth process. There are many tools and services available for migrating mobile websites to an app for handheld devices.
There are also SDKs available from the respective native operating systems from the handheld makers that you can effectively use to migrate websites to mobile apps. BuildFire, Onbile and AppMakr are only a few of such tools which do the job in an effortless fashion, keeping the look and feel of the website when converting it into an app.
The app also needs to be designed in such a way that it is easy to navigate. There are many designer tools available, including Como and SwebApps, to design the interface and the outlook.
It is important for businesses to embrace the change in the ecosystem to sustain the competition. Wiser decisions about migrating mobile websites to app-based ones will certainly yield benefits as described above and help to march ahead of the competition.
So, which one do you prefer? Mobile website or mobile app? Please feel free to leave your comments below and thanks for reading!
The difference in the syntax and structure of programming languages is no longer the talk of the town.
With every app enclosing thousands of lines of code, all that developers now talk about is their choice of app development frameworks, application program interfaces (APIs) and the cross compilation they provide.
App frameworks have become the norm and people cannot call themselves programmers if they are not well-versed in at least one particular development framework.
They offer a lot of benefits over the previous and newly outdated development approaches. These frameworks have reduced the learning curve so much that even absolute beginners can start developing apps with little training.
Adding complex functionality is no longer a genius’s work, but an effective way of writing API calls and developing apps for various platforms does not require you to be an expert in all platforms.
So, everyone with a great idea can now easily, quickly and effectively implement it with the help of app frameworks.
Therefore, you too can easily create your own mobile apps which might have seemed a difficult task a few years ago. Here is an overview of the cross-platform mobile app development frameworks to get you started.
Mobile App Development Frameworks
The mobile app development has become a million dollar industry with hundreds of mobile apps hitting the market daily. The growing demand and the need for high-performance apps have pushed the app development industry to a new level and frameworks help developers scale to the growing demands.
But, before we can delve into mobile frameworks, we first need to understand the difference between native apps and cross-platform apps.
There are many mobile platforms, for example, iOS, Android and Blackberry, and all of these require apps tailored to their own platform constraints.
Native app development is the original methodology where an app is developed specifically for a single platform using the relevant framework, syntax, and APIs.
However, this type of app development may prove to be costly and time consuming when a relatively simpler app has to be developed for more than one platform. In these cases, a cross-platform framework can be used to develop a cross-platform app that works on different platforms with a single code base.
Cross-platform frameworks provide a feasible way for developers to develop cross-platform apps easily. These tools can generally be classified as web-based frameworks and converters.
There is no single best fit of a cross-platform framework that suits all your needs. While frameworks like Corona are suitable for game development, others frameworks like PhoneGap are much more suitable for developing hybrid HTML5 apps.
Developers will mostly use more than one tool as the market is more niche than it is mature. With so many frameworks in the market today, your decision of choosing one out of the many heavily impacts the app you are developing.
Here is an overview of some of the major cross-platform app frameworks for you to choose from.
PhoneGap or Apache Cordova
It is a little difficult to fully exploit the native features using PhoneGap. It has numerous plugins that help you add the native device features in a modular way. Furthermore, it is an open source framework and is thus available free of cost.
Thus, it is capable of giving a higher user interface (UI) performance compared to hybrid apps. It also provides value-added services, such as backend as a service (BaaS), app analytics, and marketplace services.
However, a major disadvantage of this tool is that you can only use Flash and ActionScript to write apps.
Sencha Touch is an HTML5 mobile app development framework that can help you develop apps that have the look and feel of a native app. It can be used along with PhoneGap or Sencha’s native packager to utilise the device-level APIs.
Comparison between the Cross-platform Frameworks
Here is a comparison table of some of my favorite app frameworks on some important factors.
There are many more frameworks on the market waiting to be explored and exploited. If we have missed your favorite, leave some suggestions and feedback in the comments.
In today’s competitive world, businesses want to be careful when deciding whether a large software development project should be done in-house or done by outsourcing the work.
Some companies have an in-house software development setup (captive centre subsidiary), but they are so flexible that they outsource work to reliable vendor partners.
Other organisations no longer outsource major software development work, because of their captive centre setup which has long-term goals.
You can select the best one that suits your business’s purpose in the short-term and in the long-term, by comparing the two setups.
So let’s take a look at a comparison of the key drivers and challenges for a captive centre set up with those for a vendor partner set up.
Key Drivers for the Captive Centre Setup
- Does your business have a captive centre in a low-cost area? Do you want to benefit from the cost-savings of offshore resources? Then this model is the one for you.
You can choose to set up your own captive centre to make the most out of its large-scale offshore plans.
- Does your business deal with sensitive information? Do you want to prevent the potential risk of data leaks to third parties? Then you may prefer this model.
For example, if your business is based on banking, insurance or the stock market, you deal with a lot of monetary transactions and sensitive customer data.
- Do you want complete control over your sensitive operational activities, like product costing and new product launches? Then this setup is suitable for you.
- Does your business handle a complex software development project? Then the knowledge gained by the resources working on such projects will be invaluable. It will stay in the organisation with this model.
Challenges for the Captive Centre Setup
- It is usually rapidly set up to scale up your business and you may start with lenient service level agreements (SLAs). But, when you need to make the SLAs stricter and better, you might have to spend more than you thought.
- Some internal employees might be resistant of this setup. They may fear new projects being assigned to the captive centre which will lead to a lack of work for them with potential job cuts in the future.
- Your company’s top management may start to focus less on the captive centre, due to it being viewed as a cost centre (instead of a profit centre). This is because it takes a long time to show decent returns on investment and results, despite it being costly to set up.
Key Drivers for the Vendor Partner Model
Most drivers for this outsourcing model stem from the shortcomings of the captive centre model.
- Unlike the captive centre model, this model does not require a lot of time to start and the operations can be ramped up quickly. This is because the vendor generally has an established setup. For example, if you are a big retail company and wish to build an enterprise app, it makes more sense to start off using this model.
- You do not need to invest a lot of money or time to enter a vendor partner relationship.
Image credit: Flickr
- Your company can opt for a pilot project execution, before getting into large scale operations. This allows you to first gain valuable experience in setting up a low-cost centre. You can then decide to continue to scale with the vendor partner or you can start your own captive centre.
- You can smoothly close out offshore operations without hassles or high costs. This is possible with a clear contract with the vendor partner with a transparent exit clause. However, you may find it too tedious and expensive to close down offshore operations with the captive centre model, since labour laws in several low-cost countries are quite strict.
Challenges for Vendor Partner Model
- You may find it challenging to maintain the security of confidential data for banks, insurance companies, etc.
- Your business may have to spend a lot to ramp up your vendor partner setup with those who have expertise in the niche skills. This may also be difficult, because you may be unsure how long the resources and knowledge will be kept.
Many companies may want to balance the two models based on the nature of their business.
However, Fortune 500 companies, such as Citigroup, Dell, Unilever and Deutsche Bank, have recently shut down their captive centres and opted for the cost effective and efficient vendor partner setup. This is due to the increased competition and the need to save costs and deliver instant results within strict deadlines.
So, which model will you opt for? Do you have any points to share?
Application maintenance outsourcing (AMO) is an important part of application outsourcing. With AMO, you can outsource all the maintenance activities, such as enhancements, corrections and patch developments.
Image credit: Flickr
You can get the resources that you need for the maintenance phase of your project on a contract basis. These resources include the manpower with the required technical skills, technology and other required resources.
Application development and maintenance form about 80% of the total work that is outsourced. The number of outsourcing companies is also increasing due to the huge demand.
Thus, let’s take a look at the several pros and cons it comes with.
Pros of AMO
AMO is a cost-effective solution and improves your operations and technology well.
Here are some benefits of AMO:
- Cost and time saving
- It lets you have more time to develop the app and for other operations.
- It lets you concentrate on the core business.
- It makes use of external expertise.
- Gives you access to industry experts without paying a big compensation as you would for a normal employee.
- Allows your work to be flexible.
- Gives you access to talented IT professionals, better tools, equipment, and technology.
- Improves the performance, productivity, and customer satisfaction.
- It allows work to be continued in different time zones.
- Enables you to go without a payroll system.
- Nullifies the worry about losing key employees.
Cons of AMO
There are many benefits of AMO. But, if you choose the wrong partner or if you don’t take care of the basic guidelines, you could end up losing rather than gaining.
Here are some disadvantages of AMO:
- You may lose control over the workflow.
You could have a conflict with the contractor about the differing workflows.
For example, you may want the contractor to use a different approach than what they usually use.
So, you should ensure that the approach that you want the contractor to follow is clear before you sign the contract.
- The outsourced staff may be disloyal.
You may not have proper communication with your outsourced team and so you may lose control over the team.
- There is a management overhead.
You will have to deal with extra management duties, since you also have to take up the management issues related to outsourcing.
- There may be a slow response time to problems.
If there is no proper project management and communication, your customers will experience a slow response time and they may be less satisfied.
Tips to Implement AMO
Thus, you first need to choose the right partner for outsourcing. You also have to follow best practices and guidelines and you need to ensure everything goes smoothly.
Here are eight tips to help you.
1. Set Your Goals
You should set well-defined criteria and quantifiable goals.
You should know what you want from the outsourcing and you need to specify them as measurable objectives. You should then measure the progress of your project with these.
2. Understand the Process
The activities involved in maintenance outsourcing are:
- Service level agreements (SLAs)
- Asset transfer
- Knowledge transfer
- Architecture reconstruction
- Environment replication
- Pilot programme
- Process propagation
- Work execution
- Testing (verification and validation)
- Monitoring and reporting
- Review and improvements
You should understand the workflow, other specifics and how the maintenance process will be carried out.
You should clarify everything with the contractor and only sign the contract once you are clear about everything. This includes the approach that the vendor will use.
You must follow a well-developed maintenance lifecycle. Each phase (the planning, transitioning, delivery and close out) should occur at the right time and you should have a proper plan for each.
You must ensure that the knowledge transfer is done properly. So, you must maintain a good documentation and keep it updated. This will also help you during training.
You must choose experienced and skilled professionals. Such employees will require less training and you can use work trials to select key personnel.
You should also set aside a budget for training. They need basic training; since they must understand the app they are working on. You can optimise your training costs by choosing employees with the required technical skills and experience and by having good documentation.
5. Make Use of Metrics
You must establish metrics to evaluate the performance and to determine whether the contractor abides by the SLA.
You can these metrics:
- Customer demand metrics
- Enhancements work backlog
- Maintenance work backlog
- Priority request ageing
- Performance metrics
- Maintenance work volume
- Enhancement work volume
- Quality metrics
- Rework requests
- Efficiency metrics
- Utilisation metrics
Verify your measurements using audits and monitor them continuously. You should also regularly hold review meetings and ensure that you are on the right path.
6. Team Integration
You must integrate your in-house team with the outsourced team. There should be good communication with your external staff to reduce misunderstandings and conflicts.
You should also understand the cultural and geographical differences of the offshore team and try to bridge these differences to work as a single team.
7. Production Management
If you believe in productive work, then must establish a proper monitoring and reporting system as well.
You should also have a strong production management to help you smoothly carry out the joint operations. Everything should be planned and executed according to the plan.
8. Improve Your Infrastructure
If you have a mature infrastructure, you will achieve better results.
You should have a good communication platform, good connectivity and good technology support. Recovery features can also help you improve your efficiency.
So what’s your tip for AMO? Do you have any questions? Please feel free to leave your comments below and thanks for reading!