Today, I want to share different configuration techniques for Xcode projects with you for different environments like; development, beta, QA, pilot, production, etc.

First of all, ❗️ do not use targets for environmental configuration purposes.

Let’s start with creating a new Debug and Release configuration for each of our environments. Like; Development Debug, Test Release, QA Release, Test Debug, Production Release, etc.

Image for post
Image for post


What Is a CharacterSet?

a CharacterSet is a struct defined in Foundation Framework. It represents certain character arrays like;

  • decimal digits (CharacterSet.decimalDigits)
  • white space characters (CharactersSet.whitespaces),
  • lowercase letters (CharacterSet.lowercaseLetters)
  • illegal characters (CharacterSet.illegalCharacters)
  • punctuation characters (CharacterSet.punctuationCharacters)
  • and many more.

How To Know What’s Inside a CharacterSet?

Unfortunately, the CharacterSet struct doesn’t have a method or property to get characters by default, but fortunately, we can extend ChracterSet struct to get characters from it.

CharacterSet+getCharacters()

Let’s look at what’s inside a sample CharacterSet.

Characters inside of .decimalDigits CharacterSet

As you can see, CharacterSet.decimalDigits CharacterSet includes decimal digit characters from many different languages, also in emoji form.

You can look at the documentation for the list of predefined CharacterSets. …


Let's create a ListView with section headers in React Native.

First, we need a suitable data to show with sections and rows. I copied this data from a pizza restaurant menu.

var menuData = {
menu : [
{
menuSectionId : 1,
menuSectionName : 'Classic Pizzas',
items : [
{
itemId : 1,
itemName : 'Margharita',
itemDescription : 'Cheese & tomato',
itemPrice : 3.95
},
{
itemId : 2,
itemName : 'Mediterranean',
itemDescription : 'Mushrooms, green peppers, red onion & garlic',
itemPrice : 4.95
},
{
itemId : 3,
itemName : 'Pepperoni Passion',
itemDescription : 'Heaps of pepperoni',
itemPrice : 4.95
},
{
itemId : 4,
itemName : 'Chicken Feast',
itemDescription : 'Chicken, mushrooms & sweetcorn',
itemPrice : 4.95
},
]
},
{
menuSectionId : 2,
menuSectionName : 'Favourite Pizzas',
items : [
{
itemId : 5,
itemName : 'Hot & Spicy',
itemDescription : 'Onions, spicy mince, jalapenos & mixed peppers',
itemPrice : 5.95
},
{
itemId : 6,
itemName : 'Tandoori Sizzler',
itemDescription : 'Tandoori chicken, onions, mushrooms, green peppers & jalapenos',
itemPrice : 6.95
},
{
itemId : 7,
itemName : 'Vegetarian Supreme',
itemDescription : 'Onions, green peppers, sweetcorn, mushrooms & tomatoes',
itemPrice : 5.95
},
{
itemId : 8,
itemName : 'Meatilicious',
itemDescription : 'Spicy mince, pepperoni & chicken tikka',
itemPrice : 6.95
},
{
itemId : 9,
itemName : 'Mexican',
itemDescription : 'Spicy mince, pepperoni & red onions',
itemPrice : 5.95
},
{
itemId : 10,
itemName : 'Prestige',
itemDescription : 'Pepperoni, chicken tikka, spicy mince, red onions, green peppers & mushrooms',
itemPrice : 6.95
},
]
},
{
menuSectionId : 3,
menuSectionName : 'Sides',
items : [
{
itemId : 11,
itemName : 'Potato Wedges',
itemDescription : null,
itemPrice : 1.55
},
{
itemId : 12,
itemName : 'Fries',
itemDescription : null,
itemPrice : 1.55
},
{
itemId : 13,
itemName : 'Vegetable Pakora',
itemDescription : null,
itemPrice : 1.95
},
{
itemId : 14,
itemName : 'Chicken Pakora',
itemDescription : null,
itemPrice : 2.95
},
{
itemId : 15,
itemName : 'Mushroom Pakora',
itemDescription : null,
itemPrice : 1.95
},
{
itemId : 16,
itemName : 'Chicken Wings (6 pcs)',
itemDescription : null,
itemPrice : 3.95
},
{
itemId : 17,
itemName : 'Plain Nan',
itemDescription : null,
itemPrice : 1.95
},
{
itemId : 18,
itemName : 'Garlic Nan',
itemDescription : null,
itemPrice : 2.25 …

Yunus Koçyiğit

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store