iOS App Dev

iOS App Dev


Isowords: A Game Built in SwiftUI and The Composable Architecture


This repo contains the full source code for isowords, an iOS word search game played on a vanishing cube. Connect touching letters to form words, the longer the better, and the third time a letter is used its cube is removed, revealing more letters inside!

Available on the App Store now!

isowords screenshots


isowords is a large, complex application built entirely in Swift. The iOS client's logic is built in the Composable Architecture and the UI is built mostly in SwiftUI with a little bit in SceneKit. The server is also built in Swift using our experimental web server libraries.

We published a 4-part series of videos covering these topics and more on Point-Free, a video series exploring functional programming and the Swift language, hosted by Brandon Williams and Stephen Celis.

video poster image

Some things you might find interesting:

The Composable Architecture

The whole application is powered by the Composable Architecture, a library we built from scratch on Point-Free that provides tools for building applications with a focus on composability, modularity, and testability. This means:

  • The entire app's state is held in a single source of truth, called a Store.
  • The entire app's behavior is implemented by a single unit, called a Reducer, which is composed out of many other reducers.
  • All effectful operations are made explicit as values returned from reducers.
  • Dependencies are made explicit as simple data types wrapping their live implementations, along with various mock instances.

There are a ton of benefits to designing applications in this manner:

  • Large, complex features can be broken down into smaller child domains, and those domains can communicate via simple state mutations. Typically this is done in SwiftUI by accessing singletons inside ObservableObject instances, but this is not necessary in the Composable Architecture.
  • We take control of dependencies rather than allow them to take control of us. Just because you are using StoreKit, GameCenter, UserNotifications, or any other 3rd party APIs in your code, it doesn't mean you should sacrifice your ability to run your app in the simulator, SwiftUI previews, or write concise tests.
  • Exhaustive tests can be written very quickly. We test very detailed user flows, capture subtle edge cases, and assert on how effects execute and how their outputs feed back into the application.
  • It is straightforward to write integration tests that exercise multiple independent parts of the application.


The application is built in a hyper-modularized style. At the time of writing this README the client and server are split into 86 modules. This allows us to work on features without building the entire application, which improves compile times and SwiftUI preview stability. It also made it easy for us to ship an App Clip, whose size must be less than 10 MB uncompressed, by choosing the bare minimum of code and resources to build.

Client/Server monorepo

The code for both the iOS client and server are included in this single repository. This makes it easy to run both the client and server at the same time, and we can even debug them at the same time, e.g. set breakpoints in the server that are triggered when the simulator makes API requests.

We also share a lot of code between client and server:

  • The core types that describe players, puzzles, moves, etc.
  • Game logic, such as the random puzzle generator, puzzle verification, dictionaries, and more.
  • The router used for handling requests on the server is the exact same code the iOS client uses to make API requests to the server. New routes only have to be specified a single time and it is immediately available to both client and server.
  • We write integration tests that simultaneously test the server and iOS client. During a test, API requests made by the client are actually running real server code under the hood.
  • And more...

Automated App Store screenshots and previews

The screenshots and preview video that we upload to the App Store for this app are automatically generated.

The screenshots are generated by a test suite using our SnapshotTesting library, and do the work of constructing a very specific piece of state that we load into a screen, as well as framing the UI and providing the surrounding graphics.

The preview video is generated as a screen recording of running a slimmed-down version of the app that embeds specific letters onto a cube and runs a sequence of actions to emulate a user playing the game. The app can be run locally by selecting the TrailerPreview target in Xcode and running it in the simulator.

Preview apps

There are times that we want to test a feature in isolation without building the entire app. SwiftUI previews are great for this but also have their limitations, such as if you need to use APIs unavailable to previews, or if you need to debug more complex flows, etc.

So, we create mini-applications that build a small subset of the 86+ modules that comprise the entire application. Setting up these applications requires minimal work. You just specify what dependencies you need in the Xcode project and then create an entry point to launch the feature.

For example, here is all the code necessary to create a preview app for running the onboarding flow in isolation. If we were at the whims of the full application to test this feature we would need to constantly delete and reinstall the app since this screen is only shown on first launch.

Getting Started

This repo contains both the client and server code for running the entire isowords application, as well as an extensive test suite. To get things running:

  1. Make sure git-lfs is installed so that app assets (images, etc.) can be fetched.
  2. Grab the code:
git clone
cd isowords

3.   Bootstrap the application:

  • If you are only interested in building the iOS client, then run the following bootstrap command:
make bootstrap-client
  • If you want to build the client and server make sure PostgreSQL is installed and running, and then run the following bootstrap command:
make bootstrap

4.   Open the Xcode project App/isowords.xcodeproj.

5.   To run the client locally, select the isowords target in Xcode and run (⌘R).

6.   To run the server locally, select the server target in Xcode and run (⌘R).

Learn More

Most of the concepts discussed in this README are covered in-depth on Point-Free, a video series exploring functional programming and the Swift language, hosted by Brandon Williams and Stephen Celis.


Related Projects

This application makes use of a number of open source projects built by us and discussed on Point-Free, including:

Download Details:
Author: pointfreeco
Source Code:
License: View license

#swift  #ios  #mobileapp  #swiftui 

What is GEEK

Buddha Community

Isowords: A Game Built in SwiftUI and The Composable Architecture
lakshya world

lakshya world


How to Create a Successful Gaming App?

How to create a game app is a comprehensive guide, explaining the entire process of creating and publishing games for iOS and Android. Covering all the essential information a budding game developer needs to know.


Read More -


#game-engine  #game-development  #game  #games  #gaming 

Autumn  Blick

Autumn Blick


Game Development with .NET

We’ve launched a new Game Development with .NET section on our site. It’s designed for current .NET developers to explore all the choices available to them when developing games. It’s also designed for new developers trying to learn how to use .NET by making games. We’ve also launched a new game development Learn portal for .NET filled with tutorials, videos, and documentation provided by Microsoft and others in the .NET game development community. Finally, we launched a step-by-step Unity get-started tutorial that will get you started with Unity and writing C## scripts for it in no time. We are excited to show you what .NET has to offer to you when making games. .NET is also part of Microsoft Game Stack, a comprehensive suite of tools and services just for game development.

A picture of a game controller

.NET for game developers

.NET is cross-platform. With .NET you can target over 25+ different platforms with a single code base. You can make games for, but not limited to, Windows, macOS, Linux, Android, iOS, Xbox, PlayStation, Nintendo, and mixed reality devices.

C## is the most popular programming language in game development. The wider .NET community is also big. There is no lack of expertise and support you can find from individuals and user groups, locally or online.

.NET does not just cover building your game. You can also use it to build your game’s website with ASP.NET, your mobile app using Xamarin, and even do remote rendering with Microsoft Azure. Your skills will transfer across the entire game development pipeline.

logos of some gaming platforms supported by .NET

Available game engines

The first step to developing games in .NET is to choose a game engine. You can think of engines as the frameworks and tools you use for developing your game. There are many game engines that use .NET and they differ widely. Some of the engines are commercial and some are completely royalty free and open source. I am excited to see some of them planning to adopt .NET 5 soon. Just choose the engine that better works for you and your game. Would you like to read a blog post to help you learn about .NET game engines, and which one would be best for you? core #azure #c# #game development #azure #cryengine #game developers #game development #game development with .net #game engines #games #monogame #playfab #stride #unity #visual studio #waveengine

Juned Ghanchi


AI in Game Development - ITChronicles

For some years, artificial intelligence (AI) has been penetrating almost all digital spaces. After playing an instrumental role in digital communication and real-time problem-solving in many industries, AI in game development is expanding too. The significant impact of AI has played an instrumental role in the mobile and console game industry’s success.

AI has taken game development to new heights. AI helps to ensure greater satisfaction for gamers by addressing their objectives and concerns. AI also helps game developers come with higher-value additions and revisions based on data-driven insights,

AI is now showcasing many unprecedented opportunities in the gaming industry besides fulfilling its primary promise of delivering a great gaming experience. Here are some of the key ways AI is affecting the development of modern games.

**AI-Based Player Profiling **

Game developers now include AI-based player profiling within the game frameworks. This offers a game-playing experience that suits the target player profiles’ characteristic elements. You can hire game developers in India who are experts in creating AI-based player profiles equipped and thoroughly trained with game playing styles and different in-game player behaviors. These talented game developers can deliver a highly real-life environment within the game thanks to precise player profiling based on AI technology.

Read More:

#game development #game programming #game algorithms #game character design

How to Develop an NFT Gaming Platform From Scratch?

In general, developing an NFT gaming platform from scratch is similar to creating any blockchain application. Still, there are some unique aspects of NFT game development that make them worthy of mentioning in a step-wise order. The steps below give you a glimpse of building an NFT gaming platform from scratch.

  • Initially, one must plan all the facets of an NFT game. This includes technology, gameplay nature, blockchain(s) to work, market, target audience, competitors, and business plans. A road map should be drawn based on the observations.
  • Now, design the game’s prototype and get it tested with limited users. Based on the feedback, you can shape the game's front-end by designing all the in-game aspects.
  • Then, create the back–end features for the NFT gaming platform. Here, you should also integrate blockchain(s), smart contracts, and native tokens of your game.
  • Now, test the NFT gaming platform extensively for bugs and debug any errors that might be present.
  • At last, launch the NFT gaming platform for public use. Get gamer feedback and implement them in future updates to stay competitive in the gaming world.

If you want to create an NFT gaming platform, consider approaching a development firm that can help you realize your ideas.

#nft #game-development #games #gaming #game app development #nftmarketplace #blockchains 


Manisha Sharma

Manisha Sharma


Top 7 Features of Board Game Development

Board games are the most played traditional games and with the advent of technology it has become easier to play, even you can play them with friends and family anywhere and anytime with the help of a smartphone. 

There are a lot of board games that are widely accepted and people enjoy them a lot, but few of them are ruling the gaming market due to their innovative features and unique concepts. Gaming entrepreneurs are also showing their interest in it and making more investments in board games. But always keep in mind only unique features and functions can help you to reach global users and generate high revenue. So, in this article, we will discuss the must-have features of board game development and try to incorporate these features into your gaming app to make it successful. And for that, you can also take the help of a board game development company. 

Before diving in, let’s know the popular board games.

Top 10 Popular Board Games 

Here are the board games that are very popular and in high demand.

  • Chess
  • Monopoly
  • Carrom
  • Snake and ladders
  • Checkers
  • Scrabble
  • Blocks
  • Go
  • Risk
  • Sequence

Now, let’s know about the popular features of board games that are making them so much popular and widely accepted. 

                                           Read More - Ultimate Guide to Start Your Online Lottery Business

Features of Board Game Development

There are numerous board games that are available in the market to entertain you. Each game has unique ways or features to entertain, enchant and support players. But there must be a few features that should be included while you are going for board game development. Features and functionalities of games are playing a vital role in their success. 

Here are the features of Board Game Development

  • User-friendly Interface 

If you want to attract players to your gaming platform and want to engage them for a prolonged period of time, then it is vital to create a user-friendly interface where users can easily access and navigate your gaming app. The easier the interface, the more users will show their interest in your game platform. The game interface should be designed and developed in a manner where all features and functions should be used without facing any issues. Always focus on creating a simple and rich feature-oriented interface where users can enchant themselves by playing games. 

  • Payment Integration 

Players always look for a board game where they can make their payments easily and safely. A reliable and safe game platform is always demanded by users. That’s why always make proper research before you are going to implement payment methods, make sure what kinds of payment methods are used by your target audience, and according to that implement payment methods that are widely accepted and appreciated. 

You can also take the help of a board game development company to implement payment methods in your board game platform. 

  • Refer and Earn 

Refer and earn feature is beneficial for both players and owners because this feature allows users to share board game applications with their friends and family to join them to play and earn rewards. In this, players get various kinds of rewards and in-game rewards points that help them to be superior in the game and they can also buy gaming assets in the game, and on the other hand, game owners get more users to their platforms. This has become the best way to attract new players to their board game platform. 

  • Live Chat 

Live chat is the latest trending feature that allows players to communicate with their opponents and team members in real time. With the help of this feature, they can discuss games, can share their game-winning strategies with their team members, and even can contact their opponents. After contacting each other, players can make a better decision that leads them to win the game, and interact with each other while playing games. If any players face any issues, they can be solved in real-time. 

  • RNG System

RNG is referred to as Random Number Generator and plays a significant role in the board game. The RNG system is used to generate random outcomes based on algorithms. This feature makes your platform more genuine and removes the game manipulations and biases that may occur during the game. It not only improves the game but also creates trust among players for the game platform. 

RNG has become a must-have feature in board games due to its specifications. You can also incorporate the RNG system into your game platform with the help of a game app development company

  • Customer Support

This feature helps players stay engaged with the game platform for a long time period. So, always make special attention to customer support features. If a player faces any kind of difficulty or issues while playing games, then it should be solved at the same time. So, your customer support team should be technically sound and they must be able to remove all issues at the same time. 

The more you focus on customer support services the more you will be able to make an impression on your players and that will help players to take more interest in your game platform. 

  • Cross-platform compatibility

To target all kinds of users at the same time your board game app must be compatible with all platforms. If you opt for a single platform, then you would have a limited scope because you will be able to target particular genre users. But if your game app has the feature of cross-platform compatibility, then you can target all platform-based players at the same time.

Cost Deciding Factors of Board Game

The more features, the more will cost. Apart from the above-discussed features also count the below-given features that decide the cost of a board game. 

  • UI/UX
  • Location of the development team
  • Technology Stack
  • Availability of emoji and sticker
  • Features of the Application
  • Marketing Cost
  • Testing

Advantages of Starting a Board Game Business

If you are going to invest in board games, then here are the benefits:

Final Word

To make a successful online board game you should be aware of its features and functions like what is trending in the market and how we can fill this gap. Your game app should introduce something innovative that does not exist in the market and that is new to the users. Because users always crave for new features and functions-oriented gaming platforms where they can enchant themselves by playing games with the latest tech stack and trending features. 

You can also take the help of a Ludo game app development company to make your game platform more feature rich.


#boardgame #game-development #game #games #gaming  #gameapp #developer