New to GBKSOFT? Start Here!
Organisation of Development Process.
Platforms. Devices. App Submission.
Web and Mobile techs we are common with.
Here's how we ensure your safety.
You can familiarize with examples of our code in our GitHub.https://github.com/gbksoft
We form dedicated team for each project individually. The set of specialists assigned for your project (by the level of experience and proficiency in technologies) is based on the following criteria:
A typical development team consists of:
Backend and Frontend Developer
Quality Control Expert
You can review CV examples of team members here
For more details please get in touch with our client management team (email@example.com). We’ll select the proper set of specialists in accordance with your requirements and provide you with resumes of team members that will work on your project.
Our company has completed many successful projects for almost every business niche. In addition to our portfolio (available for review), we can always find a project similar to your business niche upon request and offer you a turnkey solution that will significantly reduce budget and development time of your project.
We are experts in complicated, scalable, and challenging projects!
GBKSOFT has already developed over 500 web and 200 mobile projects in different business areas. It is difficult to list all of them due to their huge number. Here’s the list of most popular business niches:
BUSINESS MANAGEMENT TOOLS
Cut expenses and automate workflow inside your company by developing custom management system.
B2B or B2C platforms with automation modules tailored for your business needs and bearing in mind sector you are working in.
SOCIAL MEDIA PLATFORMS
Create a community platform that will attract new customers to your business. Gather like-minded people and tie them into a strong social network that becomes popular and gets bigger every month.
SOFTWARE AS A SERVICE (SaaS)
Bring your business to the web by developing SaaS software. This approach delivers your services via the internet and provides your users with a straightforward interface so that could interact with your business online.
Create a custom educational website that brings your courses online with the help of broadcasting, video tutorials, quizzes, tests, consultations and professional suggestions.
SPORT & FITNESS PLATFORMS
Develop fitness platforms for coaching, live and recorded broadcasting, event scheduling, feedback aggregation, and sportswear shearing.
JOB BOARDS & PORTALS
Create a career center with configurable matchmaking algorithms, smart search system, and easy job posting builders with scraping/parsing tools to gain the required content weight.
GAMBLING & BETTING
Build a strong statistical algorithm with history analysis, heavy data pulling from external services and third-party APIs to back your gambling/betting application and provide users with recommendations and tips on game strategies.
Although we will be happy to explore new and challenging fields of activities and develop innovative projects with a unique combination of involved technologies!
We are working only with in-house developers and designers without subcontracting or outsourcing work to freelancers. We have two offices in Kyiv and Zaporizhzhya. They work in office on full-time positions.
This approach lets us to:
These are the main advantages and reasons for us to not subcontract development process and keep our team together.
In a blink of an eye)
There are several conditions that must be fulfilled before proceeding to the development of the project:
From our experience, it takes a week or so to settle these details with a client.
We always adhere to strict rules of development process organisation. Clear description of the project, detailed specifications, good planning from start to finish and transparent evaluation are principles that distinguish us from our competitors and guarantee development of high-quality product in compliance with the budget.
Delivery / Release
During the development process, we provide maximum security for both source code and user’s data.
Our projects are protected from:
Communication and Project management:
Generally, we are working in accordance with Agile methodology, but our PMs adapt management strategy to each project individually.
Correlation between methodology and project’s objectives:
In addition, Waterfall is useful if you have a limited budget for the project and can not allow additional changes to the project’s scope that can increase its cost.
Our project manager will be in touch with you all the time in order to provide all necessary information in the course of development and ensure that the end result meets your expectations. The frequency and the format of reporting will be agreed with the project manager during negotiations stage.
It’s up to you what communication channel to choose:
Usually, we assign time and day for regular meetings. All communication between developers are handled through task manager, where you can always see the progress of your project as a whole and each task separately.
Our PM will send you weekly reports with information on what’s done and next week plan. In addition, we make another skype call upon delivery of each milestone, during which we make presentation of results we’ve achieved.
Project Managers allow you to effectively communicate with the development team and they ensure that the final product meets your expectations.
PM is responsible for organization of the development process. They make sure that specialists understand your requirements and monitor the workflow, so that the project is ready on time and with the full set of features you have asked for.
You are welcome to read this article to better understand why one needs a Project Manager while outsourcing software development - Click Here
PM’s vital functions:
In addition, here’s a great article on Emotional Management - Click Here
Testing is held on each stage of development process. Starting from prototyping stage and finishing with post-release support of the project. Our testers are involved in the workflow of each project team. They are keeping an eye on the development process, monitor the product quality and compliance with customer requirements.
We perform testing in each browser from Big5 and on all popular mobile devices. We have a large “fleet” of devices including Apple Watch and various Android-powered wearables (see q. 23).
Our QA team provides detailed test documentation for the project’s layouts and user behavior rules (use cases). All bugs are carefully tracked in Redmine.
We perform four levels of software testing: Unit, System, Integration, and Acceptance testing.
The testing process is carried out on each stage of the development process:
We also perform automated testing which involves dedicated scripts that execute repetitive sequences of actions:
Automated testing is an advanced method which is required when testing complex projects. This type of testing can increase budget.
Here’s our blog post with detailed description of the testing process - Click Here
Upon completion of the development you will be given a week for product testing as a guarantee period. At the end of the week, our team will fix all the bugs that you’ve found within the project cost.
We handle the migration process to your server. It is included in the budget. Our admin will set up optimal environment for the product and advise you on each step of migration.
Mobile App delivery steps:
IMPORTANT: There is a registration fee and it may take a month to acquire approvement from Apple. This step should be performed by the actual owner of the app. Here’s a list of documents that are required in order to register Developer account - Click Here
Don’t worry! We’ll advise and guide you on each step of registration process.
All mobile apps require maintenance. Reasons are:
Because of these reasons, it is advised to hire a team to maintain your app. There are two possible solutions:
We provide a week of guarantee period. During this period, you can test the product and we’ll fix all identified bugs for free. We also thoroughly test the functionality of the product after each milestone and before final delivery. All additional works and upgrades are agreed separately.
Usually, we test applications on devices with latest OS version. In addition, our Project Manager can agree with you about additional devices for Quality Assurance.
Here’s the list of devices that we use for testing:
All cross-platform solutions result in significant loss of application performance. This is due to the fact that cross-platform solutions use web technologies that were initially designed to operate in web-environment and not as technologies for mobile apps.
Development of cross-platform solutions also results in disruption of OS guidelines developers and hence lowers the UI\UX quality. This is also due to the fact that users of each OS expect to see the elements of design that are peculiar for the specific OS. Cross-platform solutions can’t boast the same level of customization possibilities and only try to emulate native platforms.
A huge drawback of cross-platform solution is in its core limitation of OS compatibility. Cross-platform apps complicate the development at the point when they need to use the OS functions like camera, data storage, geolocation, etc. As a consequence, it requires additional time to code individual plug-ins for each OS.
Therefore, all types of mobile apps are better to develop using the same technologies mobile OS works with. This is applicable to SDK, frameworks and libraries that eventually should be compatible with the operating system.
Naturally, such approach enhances the total development time by about ⅔ but it also provides invaluable benefits:
Benefits of native solutions:
From technological perspective, the development of applications for tablets is not much different from mobile. The main difference and difficulty occurs during the design stage (screen size, screen orientation, layout).
The budget for software development and app design already includes tablet compatibility. Nevertheless, please specify the necessity of running your product on tablets, as there are nuances that we should take into account during design.
There are two variants of mobile apps adaptation for tablets:
We cannot provide you with 100% guarantee of Apple Store approvement, but we will do everything possible to make a successful release. We have extensive experience in approval of the apps that we have created.
Apple provides a list of the guidelines that make no exceptions for anyone. Here is the link. We are familiar with them and will discuss all risky moments that may affect the app approvement during the development of specifications. The decision to take those risks or to fix rough edges is always up to you.
Unfortunately, there is a risk that Apple Store moderators can ban the app even if you have complied with all their rules. Some of their reasons are quite absurd. For example: there are already many similar applications, or you are a direct competitor to Apple's native app, etc.
We’ll update your app upon delivery of new features. With the only exception: you provide us with all necessary content for the app.
How to update an App:
We have knowledge in development of software apps in various business domains including:
Here’s the list of frameworks, libraries, and tools that will let you successfully enter new markets and provide the additional value to your clients.
Mobile app development
Android + iOS
We have more than 5 years of experience in the development of high-quality and complex web applications. Here’s the list of major technologies we specialize in:
Bootstrap, NODE.js, jQuery, PHP, Yii, Yii2, Laravel, Symfony, AWS, REST API, RabbitMQ,CodeIgniter 2.2, Lumen, MySQL, Ajax, jQuery.pjax, jquery.nicescroll.
Payment systems integration, Stripe, Paypal.
Font Awesome, Google ReCaptcha.
Click to - TECHNOLOGY
Web App Development
Our company strives to optimize time and costs expenses of our customers. Therefore, we are not only coding in clean PHP, but also use additional frameworks that contain a variety of ready-made solutions.
We use Yii2 - a PHP framework for development of large-scale Web applications. Yii2 advantages:
We have already accumulated a large code-base that will accelerate the development.
We think it's inefficient to use several different programming languages at a time. It must be acknowledged that the longer expert works with a certain set of tools - the faster he levels up.
|Documentation quality||from 1 to 5||5||5||3|
|Cloud storage support||1||1||0|
|Performance||from 1 to 5||5||4||4|
|Use of components from other frameworks||yes / no||no||yes||no|
|Availability of security functions out of the box||from 1 to 5||4||4||5|
|Suitable for projects||Small
|ORM support||from 1 to 5||5||4||3|
|REST API support quality||from 1 to 6||5||4||4|
|Easy to set up||from 1 to 7||5||4||4|
|Number of ready-made solutions from community||from 1 to 8||5||5||4|
|Framework development speed||from 1 to 9||5||5||3|
|Tools for debugging||from 1 to 10||5||4||4|
|Built-in template engine||yes / no||no||yes||yes|
|OOP quality||from 1 to 5||4||4||4|
Node.js is used for backend development when instant data exchange is required. The main advantage of Node.js over PHP is the ability of two-way communication between frontend and backend, while traditional RestFul API is one way street.
Frontend / Client End
Angular.js is a framework, that greatly accelerates the pace of development.
Backend for mobile applications is developed using the same technologies that are used for web projects:
In case of classic RESTfull API development , which does not require instant data exchange functionality, we use such technology stack:
In case we need to develop an app with instant data exchange features (chats, instant messages) we opt for:
However, upon client request, we can apply Google Firebase services as a backend for your mobile app, but only if such solution is compatible with app requirements.
Frontend technologies for iOS apps
Swift - It is a new programming language for MacOS, iOS, watchOS and tvOS that combines best features and principles from C and Objective-C. Swift is compatible with code written in Objective-C (the main language used by Apple in OS X), Cocoa framework and Xcode IDE.
Integrated Development Environment (IDE)
Xcode - It is a free, native application development environment for MacOS, iOS, watchOS. Xcode was created by Apple itself and contains a suite of software tools for development of native apps on Swift and Objective-C programming languages.
Architecture and Patterns
Software design patterns and architectural patterns are general solutions to solve core problems that occur during development of software. The architecture behind particular software solution can implement different patterns and approaches and depends on the initial requirements for the project. During mobile app development we use following patterns: MVC, MVP, VIPER.
CocoaPods - It is a dependency manager for Swift and Objective-C Cocoa projects. It has over 27 thousand of different libraries and is used in over 1.6 million apps. CocoaPods saves time for development by providing numerous libraries that help to scale apps and add new features by integrating ready-made solution.
Frontend technologies for Android
In most cases we code on Java (JDK 1.6 - 1.8). Optionally, in order to support CPU/GPU intensive operations, we use .so libraries or include c/cpp code. Among such intensive operations are graphics processing (e.g. Qualcomm Vuforia - augmented reality library), or non-graphic operations (Paypal SDK).
Integrated Development Environment (IDE)
Android Studio - Native IDE with all you need to develop and publish app to Google Play store. This is a free, cross-platform IDE that can be used in Windows / Mac / Linux.
Architecture and Patterns
Software design patterns and architectural patterns are general solutions to solve core problems that occur during software development. The architecture behind particular software solution can implement different patterns and approaches depending on the initial requirements for the project.
Gradle - It is an open-source build automation system that helps to inserts libraries while building applications. Almost all libraries can be included with just one string(!) in project config. Gradle enables easy transferring of the project to other development team and significantly cats overall time for development.
We use native technologies for the frontend development of Android and iOS apps.
You give an advance payment of 30% of the cost of the first milestone, and 70% upon completion of the first milestone (including testing the app’s functions embedded to the first milestone).
After that, 30% of the second milestone and 70% upon completion. Thus the payment is carried out until the final milestone.
Payment for the project is carried out for each milestone separately. The total project budget is divided by the number of planned milestones. At the beginning of each stage of development, you make advance payment - 30% of the cost of works that are scheduled in this milestone. After you confirm the works completed, you pay the remaining 70%.
If we’ve agreed to run the development in short sprints, then the interval between two payments could not exceed 2 weeks.
1. Bank transfer
You should sign a contract to make a payment. Here’s example of our contract:
Click to see example
Pros: you have a formal contract that protects your interests.
2. Pioneer payment system
You’ll be provided with a link through which you can make a payment. This is the least comfortable option for you because the transfer is carried directly to the credit card with no need to sign a formal contract.
3. Freelance platforms (Upwork, Pickcrew, etc.)
Cons: High Fees
Currencies we accept:
Any other currency you need. But it will take up to 2 weeks in order to open a dedicated bank account for the specific currency.
You are the only owner of the project and all its IP materials. We sign the NDA prior to the start of the development process. We can only ask to list your project in our portfolio as a reference of our work.
Here’s NONDISCLOSURE & CONFIDENTIALITY AGREEMENT we use - Click Here
You can also provide your own NDA.
We do not provide a free product maintenance. But we will be happy to carry out further works, add new features and maintain the system we’ve created.
There are two possible solutions:
Looking forward to your message!