2010-02-21 13 views
6

Moje pytanie brzmi: mam aplikację zaprojektowaną dla iPhone'a i postanowiłem rozwidlić kod, innymi słowy, opracuję dwie wersje aplikacji w tej początkowej fazie, jedną dla iPhone'a i drugą dla iPada.iPhone i iPad - jak mogę rozwidlić kod?

Moje pytanie brzmi: jak rozwidlić kod? Chciałbym nadal używać jednego projektu dla obu wersji, ale oczywiście będę musiał napisać sekcje kodu dla iPhone'a i innych sekcji wyłącznie dla iPada i oczywiście będzie miał wiele wspólnych części dla obu wersji.

Jak to zrobić bez tworzenia bałaganu na kodzie?

Jakie są najlepsze praktyki? Dzięki za pomoc.

Odpowiedz

2

Problem z wielu celów jest to, że może to być sprzeczne z model dystrybucji.

Z tego co rozumiem, aplikacje na iPada i iPhone'a będą dystrybuowane jako jeden plik pojedynczy. Aplikacja zdecydowała, czy wyświetlić interfejs użytkownika iPada lub iPoda w środowisku wykonawczym.

To oznacza, że ​​jeśli nie chce mieć do rozdzielenia aplikacji w sklepie, „foo” & „Foo iPad Edition”, że nie można korzystać z wielu celów i że jakoś będzie mieć pracować z jednym kodem baza.

Nienawidzę tego, ponieważ w aplikacji może być wiele warunkowych rzeczy. Jeśli iPad to zrobi, w przeciwnym razie zrób to. Jeśli iPhone wyświetli ten kontroler widoku, w przeciwnym wypadku wyświetli się drugi. Nie sądzę, że doprowadzi to do dobrego kodu.

To, o czym teraz myślę, to zrobić coś pośrodku: stworzę w zasadzie dwie bazy kodu i gdzieś naprawdę wcześnie w aplikacji zdecyduję się przejść pełną ścieżkę do iPada lub iPhone'a.

+0

Dokumentacja Apple nie mówi, że aplikacja musi być dystrybuowana jako pojedynczy plik binarny. Przeciwnie. Sugeruje to, że decyzja powinna zostać podjęta przez programistę. Sądzę, że w przyszłości pojawi się więcej urządzeń, więc sytuacja stanie się najgorsza po dodaniu trzeciej kategorii urządzeń. – SpaceDog

+0

Tak, masz rację. To jest wybór programisty. –

3

można skonfigurować projektu Xcode do korzystania z wielu celów, następnie można przypisać jakiś plik kodu źródłowego do jednej tarczy lub inny albo na obu

+0

dwa pytania: 1) jak zrobić to zadanie 2) co z częściami kodów. Czy mogę przypisać części kodów do jednego lub drugiego celu? (skompilowałem ten IF ipad lub, jeśli iphone) ... jak to zrobić? dzięki. – SpaceDog

1

Nie jestem programistą iPhone'a, ale z tego, co St3fan wskazuje (że musi być dystrybuowany jako pojedynczy plik binarny), wygląda to jak klasyczny przypadek dla fabrycznego wzorca. Każda rzecz, która jest inna, jest implementowana na dwa różne sposoby (ze wspólnym interfejsem), a fabryka wypluwa inną implementację na podstawie, jeśli jest na iPhonie lub iPadzie. Wspólny kod nie musi się zmieniać, więc może pozostać taki, jaki jest.

1

odpowiedzieć na Twoje punkty: 1) „jak to zrobić zadanie” trzeba utworzyć nowy cel z menu Project w moim przypadku używam dwóch różnych celów dla gry iPhone (normalny i darmowa (lite) wersja)

so I created a second Target of Type Application 
    this will add a Target to the Groups & Files panel 
    and will create a new Info.plist file 

    in the Group&File you can show more columns (by right clicking) 
    on "Group&Files"), here you have to show the "Target Memebership column" 
    for each file you can decide if it is part of a target by pressing the 
    corresponding check box 

2) „co o częściach kodów” ja nie wiem, czy obecny SDK Beta wykorzystywane do tworzenia aplikacji na iPada zawiera pewne #define można przetestować podczas kompilacji w W każdym przypadku możesz ustawić dedykowane #define na poziomie docelowym i przetestować jest zrobić pewną warunkową kompilację

można znaleźć bardzo szczegółowe informacje na temat tworzenia aplikacji z wieloma miejscami docelowymi w dedcated dokumentacji jabłoni można donwload go z iPhone Dev Center musisz przeczytać ten poradnik „Zarządzanie Xcode projektu Przewodnik "

+0

dzięki !!!!!!!!! – SpaceDog

Powiązane problemy