The overall experience is so pretty.
I always wondered how do you create levels is it a manual process or have some algorithm to do this?
Two small interface suggestions: first, allow starting a line on any square, not just one with a number (the selection would be canceled if it doesn't connect to a square with a number). This would make selecting lines where the number is in the middle a bit less annoying, requiring only one swipe instead of two. Second, speed up the between-puzzle display a little. I'm an American with a very short attention span, I don't have all day to look at puzzle names :)
I also found a solver on GitHub using Z3 that looks pretty small and readable, if anyone is curious: https://github.com/redfast00/LinjatSolver
Regarding the first suggestion: that sounds interesting, I’ll give it a try.
For the second one: you can “skip” the puzzle name screen by tapping on it (see https://twitter.com/mazzarolomatteo/status/12033866772359905...). Does it fill still slow this way?
I haven’t added any “tip” about the tapping on these screens in the app... I thought this could have been discovered by tapping on it while waiting but I might have been too optimistic.
After playing more, and switching from a trial-and-error/backtrack approach to a more deliberate style where I try to mentally prove each extension of a line, I feel less of a need for the start-line-anywhere thing. So, it's your call on whether that's worthwhile.
It would be nice to have undo/redo--I've made a couple mistakes, and in those cases I'd like to step back and check my work move by move. That might spoil the clean design a bit though!
The tap-to-skip is a good trick, thanks--no need to make other changes there.
It also can't be backnavigated out of and must be manually homed or killed.
If you have a block that can be put in 2 situations except that in one case it may collide with the other block you know that the "collision" will happen otherwise there would be two valid solutions. This way you can gain information from a seemingly useless block.
And iOS the app to me still feels way more "native" than on Android.
The next time I'm probably gonna try a "real" game engine (which initially seemed overkill for a puzzle-game).
I would love to see other puzzle games done in this style as well.
Looks like fun.
It’s great to enjoy a game and enjoy reading the code behind it.
It reminds me of Lines X for Nintendo Switch that I really enjoy. 
For me, I would have preferred even less text than currently in the tutorial. If you look at the image on the first Lines X page I link below of the two turquoise dots, that's the first page of that tutorial. No text at all. You have to connect the two dots by swiping. The next tutorial screen has some extra black dots, and you learn that you have to cover all black dots with your line as well, not only connect the colored dots. Though I have to say, my mother couldn't figure that step out in Lines X without my help, even when she's into different types of puzzles, so it can be argued that having no text will only appeal to more hardcore users.
But something similar could be done in your game. I didn't need the text in the first tutorial screen, because the 4
and the empty squares would make me swipe to see what happens, and I can at a maximum cover 4 squares in any direction. Also, the line changes color when you reach the correct number of squares, which is plenty information that this is the intended length. On the second screen, I don't need text to tell me lines can't overlap, because the tutorial won't advance until I create the correct solution.
I would allow a bit more trial and error from the user instead of explanatory text. The minimalism can be taken further. That way you can learn the game and figure out the rules at the same time.
Here are some suggestions, that you can use if you wish:
1. Hide the text in the tutorial by adding the text "help" next to "quit" in the bottoma of the UI, or a question mark somewhere. The first tutorial page should (according to me) just be the puzzle! Clicking help would show the text and the heading "Welcome to Ordinary Puzzle" and so on, and clicking help again would hide all text from the page.
2. Consider showing currently solved and the maximum number of puzzles of each size. For example:
That way the player gets an estimation of how large the game is, and it might encourage players to finish more puzzles. Or if the number of puzzles are automatically generated and infinite in number, a would like to know how many I've finished of each size.
3. Clicking the number and stars in the top right should lead to a progress page or at least an explanation of stars. Currently I don't know what "38" means after solving a couple of puzzles. It would make more sense to me if it said the number of finished puzzles, but right now I don't know what the number means. Total number of squares with lines in finished puzzles? I just finished a new puzzle and it says "+27", but I don't know what the 27 stars are from.
4. After finishing a puzzle, I don't need the screen that shows the puzzle name and having to click "new puzzle". I'd like the game to automatically start the next puzzle, possible after showing the puzzle name and "completed", which would make me finish more of them in succession. If I want to stop playing, I can click quit from the next puzzle, I don't need to be asked between every puzzle.
5. I agree with the other poster who wanted to start from any square, where the line would be tossed if it doesn't connect to a number. On the other hand, I can definitely view the current implementation as a slight quirk of the game, and accept the way it works. It doesn't take much away from the game the way it is, and it reinforces that you have to interact with the numbers in some way and not just swipe randomly. So having the numbers start each interaction makes sense from that perspective.
First time I see Lines X, seems nice.
> I would allow a bit more trial and error from the user instead of explanatory text.
The tutorial is something I play-tested a lot but with each iterations I've heard different opinions about it.
I tried to strike a balance between letting the game explain itself and guiding the user trough text, but at the end of today I don't think there's a bullet-proof solution.
One thing that I noticed is that a minimalistic approach like the one you suggested works well for:
a. People who already have ton of experience with puzzle games
b. People who are "really" intentioned to play the game
In every other case, I was asked to add more guidance trough text, animations or more steps.
If it was just for me, I would have definitely used an even more minimalistic approach (which was the first iteration).
Onboarding is way more complex than I expected, and there's a ton to learn on the topic!
Regarding the other suggestions:
1. I haven't thought about that. That's a clever tip!
2. This is something I tried implementing, but it didn't match well the minimalistic look (and the home screen UI) for my tastes... but I can definitely see it being a nice addition. Do you have any suggestion on how/where to "show" it?
3. We think alike, don't we? This is also something I wanted to implemented (e.g.: showing the list of available puzzles that could be picked). If I was the player, I'd "like" something like that.
The thing is, nobody ever asked for it while/after playing. So I never implemented it.
You're the first one to actually give me this feedback.
4. Gotcha. First time I get this feedback, but it does make sense to me.
Thanks again for the great feedback :)