Stock Pro : gérez votre stock!

Bonjour tout le monde,

Je suis heureux de vous présenter ma première application : Stock Pro. Cette application permet d’aider les personnes à gérer leurs stocks d’article en effectuant des mouvements.

L’idée de base est de pouvoir créer des articles avec leurs caractéristiques de A à Z. Ainsi l’utilisateur peut paramétrer des groupes d’attributs qu’il pourra associer à l’ensemble des articles ou seulement à certaines catégories. Les attributs sont variés : texte simple, texte multilingue, nombre entier, nombre décimal, date, code-barres et mesure. Les possibilités de personnalisation sont donc infinies.

L’utilisateur peut créer plusieurs type de mouvement (vente, achat, transfert etc…) et plusieurs lieux de stockage.

Je suis conscient que c’est pas facile à comprendre à première vue, c’est pourquoi je vais préparer une documentation qui sera incluse directement dans l’application. En attendant si vous voulez tester l’application vous avez dans la rubrique “Base de données” un mode démo qui vous génère quelques paramètres.

La version de démo est limité à 15 mouvements. A priori les achats intégrés ne fonctionnent encore pas mais si vous être intéressé par la version complète je me fais une joie de vous faire une réduc’ (quand je trouverai comment ça fonctionne :smile:).

L’application est disponible sur iPad et iPhone.

https://itunes.apple.com/fr/app/stock-pro/id1370062849?mt=8

2 « J'aime »

Hello @edroche :grin:

Je viens d’installer ton application !
Tout d’abord, félicitation ! :grin:

J’ai quelques remarques au premier coup d’oeil :

  • Quand on va dans l’onglet ‘Mouvement’, la première fois (si on ajoute rien), il est vide, on dirait qu’il est buggé. Peut-être ajouter un petit message du genre “Aucun mouvements” ou autre ? Il y a la même chose quand on va dans le menu ‘Paramétrage’ pour les ‘Mesures’, les ‘Attributs’, etc etc. Surtout par exemple, quand on veut faire un mouvement, on clique sur un article, sur mouvementer, ensuite, on clique sur mouvement, et là, on arrive sur un écran complètement blanc… Je pense que c’est un point important, pour que l’utilisateur comprenne ce qu’il se passe.
  • Quand on clique sur le bouton ‘+’ pour ajouter une ‘Mesure’ par exemple, ce serait peut-être bien de donner le focus directement sur le champ texte ‘Nom’ ? (Après, c’est peut-être une question de préférence, mais ça réduit de un le clic quand on connait l’application) (C’est pareil quand on va pour les unités, etc)
  • Pour les mesures, peut-être que tu peux les prévoir toi même ? Ce qui éviterait une phase de configuration de base pour l’utilisateur.
  • Personnelement, je ne mettrais pas ‘Achats intégrés’, mais plutôt un truc du genre ‘Débloquer la version complète’ ou un truc du genre ?
  • Pourquoi ‘Paramétrages’ et pas ‘Paramètres’ ? Plus court et plus courant.

Voilà voilà dans un premier temps ! :slight_smile:

Bonne fin de journée,

Alexandre

Bonjour Alexandre!

D’abord merci d’avoir pris du temps et de me faire parvenir tes retours :slight_smile:

C’est pas bête, je vais voir pour rajouter cette information.

Il faudrait le faire que dans le cas d’une création alors. En modification ça dépend ce que l’utilisateur veut modifier.

L’inconvénient c’est qu’il y a tellement de mesure possible! Et je trouve dommage d’en générer si l’utilisateur en a pas forcément besoin… Je pense plus à une sorte d’assistance qui permettrait à l’utilisateur de sélectionner parmi une liste et qui à la validation génèrent les mesures.

Çà me paraît long et inapproprié pour une cellule qui renvoie sur une autre fenêtre. Je note tout de même ce point!

Tu as carrément raison, je n’avais pas remarqué! J’ai fait la modification :slight_smile:

Bonne fin de journée

Estéban.

Avec plaisir :slight_smile:

Il faudrait le faire que dans le cas d’une création alors. En modification ça dépend ce que l’utilisateur veut modifier.

Oui, je pense aussi, que en ajout.

L’inconvénient c’est qu’il y a tellement de mesure possible! Et je trouve dommage d’en générer si l’utilisateur en a pas forcément besoin… Je pense plus à une sorte d’assistance qui permettrait à l’utilisateur de sélectionner parmi une liste et qui à la validation génèrent les mesures.

Mmh, oui, au pire, pas grave, l’utilisateur ne doit le faire qu’une fois.

Çà me paraît long et inapproprié pour une cellule qui renvoie sur une autre fenêtre. Je note tout de même ce point!

C’est vrai que c’est un peu long ^^
Après, je sais pas si ça parle aux gens ‘Achats intégrés’. Si oui, alors, c’est tout bon, à voir :slight_smile:

Bonne journée,

Alexandre

Bonjour,
Déjà bravo pour ton app, ça motive pour coder !
J’ai repéré un petit truc gênant : quand on veut mettre une photo sur un produit issue de sa propre bibliothèque, on ne peut pas revenir en arrière si on change d’avis. Un bouton « annuler » serait pratique

Ton app regorge de fonctionnalités sympa, bravo encore une fois

Bonjour @Deadbone,

Merci pour ton message, ça me fait vraiment plaisir ! Pour information ce n’est pas réellement mon premier programme puisque je bosse depuis 4 ans dans une boite éditrice de logiciel. Par contre j’ai appris le langage Swift assez facilement grâce aux cours de @mbritto qui je dois dire sont vraiment bien fait :smile:

Concernant le bouton annuler, j’avais remarqué le problème et j’avais justement appliqueé une modification dans ce sens. On dirait qu’il n’apparait pas de temps en temps… Je vais chercher ça plus en détail alors. Merci pour ce retour :slight_smile:

Bon week-end à toi :slight_smile:

1 « J'aime »

Re bonjour :slight_smile:
Par rapport à ton app, tu pourrais me dire quel cours tu as utilisé (s’il existe un cours disponible) pour la partie scan de ton app ?

Bon week-end

Salut,

Je ne sais plus exactement les liens sur lesquelles je me suis appuyé… J’ai trouvé celui là en faisant une recherche, peut-être qu’il pourra t’aider :

https://www.appcoda.com/barcode-reader-swift/

Bonne fin de journée

Bravo Esteban, super app :+1:

Effectivement j’ai eu le même problème, si on ne va pas dans les préférences pour créer des mouvements et lieux de stockage, on se retrouve bloqué. Peut-être qu’il faudrait juste mettre un bouton ‘+’ dans les écrans de sélection de ces mouvements et lieux de stockage. Ca éviterait de devoir annuler la manipulation en cours pour aller dans les préférences.

En tous l’app doit être bien utile pour quelqu’un qui doit gérer des stocks, bien joué :slight_smile:

Bonjour @mbritto ,

Merci Maxime, ça me fait super plaisir! :slight_smile:

Effectivement ça pouvait être frustrant de se retrouver à revenir en arrière… J’ai publié une mise à jour (1.2) avec quelques correctifs et l’ajout de ces deux boutons “+”.

Hello, petite question : tu utilises quoi comme vue pour ta vue réglages ? Je suis en train de me former en créant une petite app du coup je regarde un peu ce qui se fait comme pratiques.

Sinon, histoire de pinailler un peu, je pense que tu utilises le Double pour stocker la quantité. Du coup ça affiche le .0

Pour ma part, je fais appel à une fonction (je ne dis pas que c’est la meilleure fonction de la terre, vu que je débute)
func formatDoubleToStringWithoutZeroAfterComma(myDoubleValue value:Double) -> String{
let decimal = value.truncatingRemainder(dividingBy: 1)
if decimal != 0.0 {
return String(format:"%.2f", value)
}
return String(Int(value) )
}

S’il y a une meilleure manière de faire, je suis preneur aussi :slight_smile:

Salut,

J’ai trouvé ça sur stackoverflow pour enlever les zéros sans formater.

extension String {
    var clean:String {
        var stringCharacters = Array(self)
        var isDoubleDot = false
        for character in stringCharacters {
            if character == "." {
                isDoubleDot = true
                break
            } else {
                isDoubleDot = false
            }
        }
        if isDoubleDot == true {
            while 1 == 1 {
                if  stringCharacters[stringCharacters.count-1] == "." {
                    stringCharacters.remove(at: stringCharacters.count-1)
                    break
                } else if stringCharacters[stringCharacters.count-1] == "0" {
                    stringCharacters.remove(at: stringCharacters.count-1)
                } else {
                    break
                }
            }
            return String(stringCharacters)
        } else {
            return self
        }
    }
}

sinon, il y a aussi cette extension qui resemble à ta fonctionne est qu’on peut formater cette fois-ci.

extension Float {
    var cleanValue: String {
        return self.truncatingRemainder(dividingBy: 1) == 0 ? String(format: "%.0f", self) : String(format: "%.2f", self)
    }
}

Ah oui en effet c’est beaucoup plus court :slight_smile:

Salut tout le monde,

Alors pour ma vue réglages j’utilise un ViewController avec une TableView tout simplement :slight_smile:

Concernant les quantités avec .0 à la fin c’est totalement voulu. Je prends l’exemple d’une personne qui gère des fromages et qui les vends en demi pièce. Dans la pratique il faudrait gérer un code article et plusieurs conditionnements mais ici il peut le gérer en utilisant les décimales :slight_smile:

Cependant la plupart des gens ne sont pas concernés donc je vais voir pour faire quelque chose. Merci pour votre retour!

Bon mardi férié :full_moon_with_face:

Hello

Ah oui au temps pour moi, j’ai testé l’app avec la base par défaut et je n’avais pas du tout pensé à tous les cas d’utilisation :slight_smile:

Bonne journée