Bright Devs Blog

Design Patterns with Swift: Facade pattern

Design Patterns with Swift: Facade pattern

iOS swift design patterns facade pattern

Facade pattern is one of the Structural Patterns. The main aim of it is to hide the complexity of system, class or logic and provide a simple interface - use your system easier.

Design Patterns with Swift: Facade pattern
Putting native in React Native on Android

Putting native in React Native on Android

android react native java platform specific

Using custom native components in React Native is a common thing, so sooner or later you may have to write some functionality in a native language and use it in your application. Let me show you a simple example how to do that.

Putting native in React Native on Android
Your first unit tested Ethereum Smart Contract

Your first unit tested Ethereum Smart Contract

smartcontract ethereum blockchain truffle web3js parity unittests

The goal of that blog post is to provide you with the exact steps how to start creating your first unit tested smart contract.

Your first unit tested Ethereum Smart Contract
Important: do not overuse !important

Important: do not overuse !important

css important html stylesheet

You have created your CSS rule and found out that it didn’t take a desired effect. You checked the CSS selector and HTML code again to check if they correspond. Or you just opened the developer console in your browser, inspected the element and checked if your CSS rule was present in the styles list. It turns out that it is there, but the declarations are strikethrough. This means you have just encountered some kind of CSS specificity issue. You could just add the !important flag to your declarations and have it done. Is it a good solution? Never. I do not say you should never use !important though. What I really want to say is that you should never use !important if you are not aware of the consequences.

Important: do not overuse !important
HTTP request logging in Node.JS

HTTP request logging in Node.JS

node.js logging

One of the most basic kind of logging every backend application should have is a trace logging of all incoming HTTP requests. Yet it's not easy to make it right and useful. Let me show you what we have learned and what we do to ensure our logs are meaningful and useful.

HTTP request logging in Node.JS
TeamCity for iOS project

TeamCity for iOS project

iOS swift Fastlane TeamCity continuous integration

Hi! Today's topic will be about TeamCity and how to provide continuous integration in your iOS project.

TeamCity for iOS project
HTTP client timeouts

HTTP client timeouts

http timeout network rest api

We have already touched upon the importance of timeouts and described most important related JDBC knobs. The next aspect of timeouts I would like to focus on is using API clients. Specifically HTTP clients which are by far the most popular. We will review couple of popular HTTP client libraries and their configuration regarding timeouts.

HTTP client timeouts
call(), apply() and bind() Methods in JavaScript

call(), apply() and bind() Methods in JavaScript

javascript bind apply call

Working with JavaScript ‘this’ keyword can be tricky. Not knowing the background rules may end up with the famous “it doesn’t work and I don’t know why”. It’s good to know the theory before putting things into practice. ‘call()’, ‘apply()’ and ‘bind()’ methods can come in handy while setting the ‘this’ value.

call(), apply() and bind() Methods in JavaScript
Working with iOS in-app purchases

Working with iOS in-app purchases

ios in-app purchases itunes connect subscriptions swift

There are more pleasant things to do in iOS development than setting up and testing in-app purchases. The process is laborious and requires thorough testing, especially that in-app purchases are crucial from a business perspective.

Working with iOS in-app purchases
The human side of software development

The human side of software development

culture career stress

Getting into the world of software development can be a really demanding task. Introducing clean code, providing tests to your solution, using the right tool for the job, keeping up with latest trends... these are all things that you were most probably told about at the time that you barely knew what programming was. It seems that many people tend to neglect the side of development that hasn't got too much to do with machines...

The human side of software development